[ BOJ ] 1260 DFS와 BFS - python 문제풀이
1260 DFS와 BFS 접근 : 기본 DFS, BFS 구현 문제라 별다른 전략은 세우지 않았고, 다양한 방법으로 풀어보려 했다 풀이 방법 1. 함수X while문으로 stack 활용해서 풀기 2. dfs는 함수 활용, bfs는 deque 활용하기 방법1. 함수 없이 while문 활용해서 푼 방법 N,M,V = map(int, input().split()) # 정점 i를 key, i와 연결된 정점들을 리스트에 담아 value로 갖는 딕셔너리 info info = {i:[] for i in range(1,N+1)} for _ in range(M): a,b = map(int, input().split()) info[a].append(b) info[b].append(a) # 문제 조건 : 정점이 작은 순서대로..
2021. 7. 16.
[ SWEA ] D3 - 1221, 10912, 4676 - python 문제풀이
1221 GNS 접근법 : 딕셔너리에서 개수만 불러와서 순서에 맞춰 출력, join 활용 order = ["ZRO","ONE","TWO","THR","FOR","FIV","SIX","SVN","EGT","NIN"] for _ in range(int(input())): d = {"ZRO":0,"ONE":0,"TWO":0,"THR":0,"FOR":0,"FIV":0,"SIX":0,"SVN":0,"EGT":0,"NIN":0} tc,n = input().split() for num in input().split(): d[num] +=1 print(tc) for o in order: print(" ".join([o]*d[o]),end=" ") print() 10912 외로운 문자 접근법 : 정렬시켜놓고 idx를 마..
2021. 7. 13.
[ SWEA ] D3 - 10804, 10200, 6692, 5789 - python 문제풀이
10804 문자열의 거울상 res = [] d = {"b":"d","d":"b","p":"q","q":"p"} for tc in range(int(input())): s = input() r = list(map(lambda x:d[x],s))[::-1] res.append("#{} {}".format(tc+1, "".join(r))) print("\n".join(res)) 10200 구독자 전쟁 테스트케이스가 많은지 매번 프린트하는것보다 마지막에 join으로 한번 하는게 훨씬 빠름 r = [] for tc in range(int(input())): N,P,T = map(int, input().split()) r.append("#{} {} {}".format(tc+1, min(P,T),P+T-N if N
2021. 7. 8.
[ SWEA ] D3 - 5515, 1208, 4466, 1229, 3142 - python 문제풀이
5515 2016년 요일맞히기 info = [31,29,31,30,31,30,31,31,30,31,30,31] r = {0:3,1:4,2:5,3:6,4:0,5:1,6:2} # 요일에 대응되는 숫자 for tc in range(int(input())): m,d = map(int, input().split()) print("#{} {}".format(tc+1, r[d%7] if m==1 else r[(sum(info[:m-1])+d)%7])) 1208 Flatten 접근법 : 정렬 -> 최대최소 차이비교 -> 반복 ... 만약 차이가 1과 같거나 작아지면 이제 의미 없는 블록 옮기기라 탈출 for tc in range(10): N = int(input()) blocks = sorted(list(map(int..
2021. 7. 7.