[ 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.
[ SWEA ] D3 - 11688, 5431, 2805, 1228 - python 문제풀이
11688 Calkin-wilf tree 1 접근 : 문제를 읽자마자 트리형식, 재귀로 풀면 빠를 것 같다는 생각이 들어 바로 구현 - 문자열, 분모에 들어갈 수, 분자에 들어갈 수를 넘겨주고 문자열의 0번째로 조건 판별 - 재귀 종료 조건 : 문자열의 길이가 0일 때 == 더 이상 깊게 들어갈 필요가 없을 때 def tree(idx): global route,up,down if route[idx] == 'L': down = up+down else: up = up+down if idx == len(route)-1: return else: tree(idx+1) for tc in range(int(input())): route = list(input()) up, down = 1, 1 result = tree..
2021. 7. 5.
[ SWEA ] D3 - 1217, 1230, 3431, 4406 - python 문제풀이
1217 거듭제곱 def mul(num,k): global n,cnt num *= n if k == cnt: return num return mul(num,k+1) for tc in range(10): N = int(input()) n,cnt = map(int, input().split()) print("#{} {}".format(N,mul(1,1))) 또 다른 방식 def mul(n,m): if m == 1: return n return mul(n,m-1)*n for tc in range(10): a = int(input()) b,c = map(int, input().split()) print('#{} {}'.format(a,mul(b,c))) 1230 암호문3 오래 걸리지만, 문제를 잘 이해하고 차근..
2021. 6. 29.