Algorithm/문제풀이 73

[Python][Programmers] 기초문제_12921, 12919, 12918, 12917, 12916

- [12921] 소수 찾기 def solution(N): li = [True for _ in range(2, N+1)] for idx, val in enumerate(li): i = idx+2 if val == False : continue for j in range(2,N): if i*j > N: break li[i*j-2] = False answer = filter(lambda x: x == True, li) return len(list(answer)) -> 에라토스테네스의 체 +++ 다른 사람 풀이 참고 def solution(N): nums = set(range(2, N+1)) for n in range(2, N+1): if n in nums: nums -= set(range(n*2, N+1, ..

[Python][Programmers] 기초문제_12930, 12928, 12926, 12925, 12922

- [12930] 이상한 문자 만들기 def solution(s): isUpper = False li = list(s) for i in range(len(li)) : isUpper = not isUpper if s[i] != ' ' else False li[i] = li[i].upper() if isUpper else li[i].lower() return ''.join(li) --> str.lower() 소문자 || str.upper() 대문자 - [12928] 약수의 합 def solution(n): li = filter(lambda x: n%x == 0, list(range(1,n+1))) return sum(li) --> filter로 약수찾기 - [12926] 시저 암호 def solution(s..

[Python][Programmers] 기초문제_12934, 12933, 12903, 12932, 12931

- [12934] 정수 제곱근 판별 import math def solution(n): answer = pow(math.sqrt(n)+1,2) if math.sqrt(n)%1 == 0 else -1 return answer --> math 모듈의 sqrt 함수 : 제곱근 구하기 / pow 함수 : 제곱 구하기 - [12933] 정수 내림차순으로 배치하기 def solution(n): # answer = list(str(n)) # answer.sort() # answer.reverse() # print(''.join(answer)) # answer = int(''.join(answer)) ### 간단히 answer = list(str(n)) answer.sort(reverse = True) answer =..

[Python][Programmers] 기초문제_12969, 12954, 12948, 12947, 12947

- [12969] 직사각형 별찍기 # a, b = input().split() # str = "*" * int(a)+'\n' # str = str * int(b) ### int로 입력받기 a, b = map(int, input().split()) str = ('*'*a + '\n')*b print(str) - [12954] x만큼 간격이 있는 n개의 숫자 def solution(x, n): ### 풀이1 # answer = [x] # while n-1: # answer.append(answer[-1] + x) # n=n-1 ### 풀이2 answer = [x * (i+1) for i in range(n)] return answer - [12948] 핸드폰 번호 가리기 def solution(phone_n..

[Python][Programmers] 기초문제_12912, 12944, 12950, 12937, 12935

- [12912] 두 정수 사이의 합 def solution(a, b): a,b=min(a,b),max(a,b) result = sum((range(a,b+1))) return result : a, b 사이의 모든 숫자의 합 구하기. 단, a range(minNum, maxNum) 을 사용하고 sum() 을 사용해 합을 구했음 - [12944] 평균 구하기 def solution(arr): answer = sum(arr)/len(arr) return answer - [12950] 행렬의 덧셈 def solution(arr1, arr2): ### 풀이 1 # answer = [] # for i in range(len(arr1)): # ans = [] # f..

[Java][Baekjoon]9501_꿍의 우주여행

문제 꿍은 우주여행을 하고 싶어져서 우주여행을 계획하기 시작했다. 몇 가지를 고려해본 결과 우주여행에는 우주선의 연료와 목적지까지의 도착시간이 가장 큰 영향을 미치는것으로 파악됐다. 꿍은 엄청난 부자여서 우주선이 여러대가 있는데 각각의 우주선마다 최고속도와 연료소비율이 조금씩 다르다. 연료 소비율은 단위시간당 소비하는 연료의 양이다. 모든 우주선이 최고속도에 즉시 도달한다고 할 때 꿍이 가고싶어하는 곳까지 여행할 수 있는 우주선은 총 몇대인지 여러분이 대신 구해줘라. 입력 입력은 테스트케이스의 개수 T (1 ≤ T ≤ 50)로 시작한다. 각 테스트케이스는 공백으로 구분되는, 우주선의 개수 N (1 ≤ N ≤ 100)과 목적지 까지의 거리 D (1 ≤ D ≤ 106), 두 개의 정수로 시작한다. 다음 N줄..

[Java][SWEA][D3]11285_다트 게임

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXZuaLsqz9wDFAST&categoryId=AXZuaLsqz9wDFAST&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제에서 다트가 꽂힌 좌표 (x, y) 값이 주어져 있으므로, 과녁의 중심(0, 0) 으로 부터 해당 좌표까지의 거리를 구할 수 있다. x2+ y2 와 r (=20, 40, 60, ,,, 200) 의 길이를 비교하면 다트가 꽂힌 위치의 점수 p 를 알아낼 수 있는 간단한 문제이다. import java.io.*; import jav..

[Java][Programmers]49191_순위

문제 설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다. 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 선수의 수는 1명 이상 100명 이하입니다. 경기 결과는 1개 이상 4,500개 이하입니다. results 배열 각 행 [A, B]는 A 선수가 B 선수를 이겼다는 의..

[Java][Baekjoon]2252_줄 세우기

문제 N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다. 일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오. 입력 첫째 줄에 N(1≤N≤32,000), M(1≤M≤100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이다. 학생들의 번호는 1번부터 N번이다. 출력 첫째 줄부터 앞에서부터 줄을 세운 결과를 출력한다. 답이 여러 가지인 경우에는 아무..

[Java][Baekjoon]1960_에라토스테네스의 체

문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N, max(2, K) < N ≤ 1000) 출력 첫째 줄에 K번째 지워진 수를 출력한다. 예제로 주어진 N=10, K=7 의 경우를 진행해보면 다음과 같다. 위의 과정과 동일하게 풀이도 문제에 주어진 알고리즘의 순..