목록Python Algorithm (133)
cool hamsters never sleep
n = int(input()) # 가고싶은 방 start = 1 # 중앙의 방 1에서 시작 room = 1 # 몇 개의 방을 지나가는지 plus = 6 # 개수가 증가할수록 6의 배수가 증가하므로 while n > start : # 가고싶은 방에 도착할 때 까지 room = room + 1 # 일단 최소 1 이상이므로 더하고 시작 start = start + plus # 6 더하고 plus = plus + 6 # 6 또 더하기 (다음 방) print(room) # 가고싶은 방 도착하면 최종 더한 방 개수 출력 1번 : 1 2번 (6의 1 배수) : 2 3 4 5 6 7 3번 (6의 2 배수) : 8 9 10 11 12 13 14 15 16 17 18 19 4번 (6의 3 배수) : 20 21 22 23 ..
import sys n = int(sys.stdin.readline()) num = list(map(int, input().split())) x_num = sorted(list(set(num))) # 인덱스 뽑기 위한 중복 제거와 정렬 dic = {x_num[i] : i for i in range (len(x_num))} for i in num : print(dic[i], end=" ") 시간초과가 되지 않으려면 딕셔너리를 사용해야 한다는! 여기서 잠깐 딕셔너리의 특징을 보고 가시죠 딕셔너리 이름 = {key값 : value값} Key값 중복 허용 하지 않고, 중복될 경우 마지막 입력된 value값 출력 아래는 시간초과 코드!! 어째서... (쿨럭) import sys n = int(sys.stdin.r..
이건 아마 구글링 했을 때 나오는 가장 이해가 쉬운 코드일 것입니다. 물론 정석적인 풀이 방법이 아닌 것 같긴 하지만요... from fractions import Fraction n = int(input()) a = list(map(int, input().split())) for i in range (1, n) : if a[0] % a[i] == 0 : how = round(a[0]/a[i]) print(str(how) + "/1") else : print(Fraction(a[0], a[i])) 만약 나머지 없이 딱 나눠지는 경우에는... 소수점이 표시되지 않도록 round()를 썼고요. 이후에 문자와 같이 표시해주기 위해서 str()을 사용하고 +"/1"을 붙였습니다. 그리고 그 외의 경우에는 Fra..
import sys n = int(sys.stdin.readline()) n_list = set(map(int, input().split())) m = int(sys.stdin.readline()) m_list = list(map(int, input().split())) for i in m_list : if i in n_list : print(1, end=" ") else : print(0, end=" ")
아래는 각각 메모리 초과가 발생한 코드입니다. 메모리가 8mb이므로, append를 사용하면 초과한다고 하는군요. import sys a = [] for i in range (int(sys.stdin.readline())) : a.append(int(sys.stdin.readline())) a.sort() for i in range (len(a)) : print(a[i]) x = [] for i in range (int(input())) : s = int(input()) x.append(s) x.sort() for i in range (len(x)) : print(x[i])
import sys n, k = map(int, input().split()) s = set() for i in range(n) : s.add(sys.stdin.readline()) cnt = 0 for i in range (k) : new_s = sys.stdin.readline() if new_s in s : cnt = cnt +1 print(cnt) 우선 시간초과가 많이 난다길래 import sys 스근하게 데려와서 sys.stdin.readline()으로 입력받았고요 중복 제거 후 검사해야 하는 문자열은 들어오는 족족 중복 제거한 문자열에 확인하여 문자 세는 변수에 저장... 이후 출력했습니다.