본문 바로가기

반응형

알고리즘/백준 ~ 단계별 풀어보기

(21)
백준 11478번 "서로 다른 부분 문자열의 개수" 파이썬 import sys s = (sys.stdin.readline().rstrip()) list_s = list() for i in range(len(s)): for j in range(len(s)): if s[i:j+1] != '': list_s.append(s[i:j+1]) set_s = set(list_s) print(len(set_s))
백준 1269 "대칭 차집합" 파이썬 import sys n, m = map(int, sys.stdin.readline().split()) set1 = set(map(int, sys.stdin.readline().split())) set2 = set(map(int, sys.stdin.readline().split())) print(len(set1-set2) + len(set2 - set1))
백준 1764 "듣보잡" 파이썬 코드 import sys n, m = map(int, sys.stdin.readline().split()) listen = set() watch = set() for _ in range(n): listen.add(sys.stdin.readline().rstrip()) for _ in range(m): watch.add(sys.stdin.readline().rstrip()) listenWatch = listen - watch listen = listen - listenWatch ans = list(listen) ans.sort() print(len(ans)) for i in ans: print(i)
[다시 풀어보기] 백준 2981번 "검문" Python from math import gcd import sys #전체적인 해법 + 인사이트 #https://pangsblog.tistory.com/62 n = int(sys.stdin.readline()) array = [] for _ in range(n): array.append(int(sys.stdin.readline().rstrip())) array.sort() t = array[0]-array[1] for i in range(1, len(array)): t = gcd(t, array[i]-array[i-1]) answer = [] answer.append(t) # O(N^1/2)로 약수 구하기 # https://minnit-develop.tistory.com/16 for i in range..
백준 10816 "숫자 카드2" Python 시간초과 from itertools import count import sys n = sys.stdin.readline().rstrip() array_n = list(map(int, sys.stdin.readline().rstrip().split())) m = sys.stdin.readline().rstrip() array_m = list(map(int, sys.stdin.readline().rstrip().split())) for i in array_m: cnt = 0 for j in array_n: if i == j: cnt += 1 print(cnt, end=" ") 딕셔너리를 활용 import sys n = sys.stdin.readline().rstrip() array_n = lis..
백준 1620 "나는야 포켓몬 마스터 이다솜" Python import sys n, k = map(int, sys.stdin.readline().rstrip().split()) pocketMon_Dict_str = dict() pocketMon_Dict_int = dict() answer = [] for i in range(1, n+1): inp = sys.stdin.readline().rstrip() pocketMon_Dict_int[i] = inp pocketMon_Dict_str[inp] = i for j in range(1, k+1): inp = sys.stdin.readline().rstrip() if inp.isnumeric(): answer.append(pocketMon_Dict_int[int(inp)]) else : answer.app..
백준 11651 "좌표 정렬하기 2" Python import sys n = int(input()) array = [] for _ in range(n): array.append(list(map(int, sys.stdin.readline().rstrip().split()))) array.sort(key= lambda x : x[0]) array.sort(key= lambda x : x[1]) #array.sort(key= lambda x : (x[0], x[1]))로도 가능 for i in array: print(*i)
백준 11650 "좌표 정렬하기" Python import sys n = int(input()) array = [] for _ in range(n): array.append(list(map(int, sys.stdin.readline().rstrip().split()))) array.sort(key= lambda x : x[1]) array.sort(key= lambda x : x[0]) #array.sort(key= lambda x : (x[0], x[1]))로도 가능 for i in array: print(*i)