본문 바로가기

python-algorithm1422

[백준] 1237 1 print("문제의 정답") cs 말장난 같은 문제입니다 '문제의 정답'을 출력하면 됩니다 2021. 2. 19.
[백준] 1439 1 2 3 4 5 6 s=input() cnt=0 for i in range(len(s)-1): if s[i]=='0' and s[i+1]=='1' :cnt+=1 if s[i] == '1' and s[i + 1] == '0': cnt += 1 print((cnt+1)//2) Colored by Color Scripter cs 2021. 2. 8.
[백준] 1427 1 print(''.join(sorted(input(),reverse=True))) cs 한줄짜리 쉬운문제지만 많은게 담겨있는 문제입니다. 우선 비어있는 string ''에 join 을 붙이면 list형태의 index를 string으로 붙여서 출력이 가능합니다. sorted의 reverse=는 bool을 인자로 가지고 True로 하면 말그대로 역으로 즉 내림차순으로 정렬을 합니다. 2021. 2. 8.
[백준] 1246 1 2 3 4 5 6 7 8 9 10 n,m=map(int, input().split()) tmp=[] for i in range(m): tmp.append(int(input())) tmp.sort() price,ans=0,0 for i in range(m): mymax=min(m-i,n) if ans 2021. 2. 8.
[백준] 1181 1 2 3 4 5 6 7 tmp=[] for _ in range(int(input())): s=input() if s not in tmp: tmp.append(s) tmp.sort(key=lambda x:(len(x),x)) for i in tmp: print(i) cs 정렬인데 기준이 두가지 입니다. 첫번째 길이가 짧은 순서대로, 두번째 알파벳 순으로 line 5번에 sort의 key 와 lambda 함수를 이용해서 구현했습니다. 2021. 2. 8.
[백준] 1158 1 2 3 4 5 6 7 8 9 n,k=map(int, input().split()) joesephus=list(range(1,n+1)) ans=[] i=k-1 while 1: ans.append(joesephus.pop(i)) if not joesephus: break i= (i+k-1)%len(joesephus) print('') cs 저는 일단 이런 문제들은 손으로 직접 종이에 써가면서 먼저 풉니다. 제가 손으로 풀 수있다면 당연히 구현 가능하다 생각하고, 손으로 바로 안풀리면 리처드 파인만의 알고리즘을 적용합니다. 2021. 2. 8.
[백준] 1145 1 2 3 4 5 6 7 8 9 a,b,c,d,e=map(int, input().split()) for i in range(1,1000000): cnt=0 if i%a==0: cnt+=1 if i % b == 0: cnt += 1 if i % c == 0: cnt += 1 if i % d == 0: cnt += 1 if i % e == 0: cnt += 1 if cnt>2: print(i); break cs 분류가 브루트포스로 돼있어서 그에 맞게 무자비하게 때려박았습니다. 반복문 최대범위를 1만으로 했을땐 틀리네요 2021. 2. 8.
[백준] 1037 1 2 3 4 n=int(input()) tmp=list(map(int, input().split())) tmp=sorted(tmp) print(tmp[0]*tmp[-1]) cs 1과 자기 자신 빼고 약수들이 나오는데 이게 정렬이 돼있단 보장이 없으니 line3에서 처럼 오름차순이든 내림차순이든 정렬합니다. 그리고 이게 손으로 약수 계산을 해보면 쉽게 깨닫는데 list의 가장 처음과 끝을 곱하면 원하는 N이 나오게됩니다. 2021. 2. 8.
[백준] 20362 1 2 3 4 5 6 7 8 9 10 11 12 n,s=input().split() n=int(n); s=str(s) tmp=[] for _ in range(n): a,b=input().split() if a==s: ans=b tmp.append((a,b)) cnt=0 for i in range(len(tmp)): if tmp[i][1]==ans: if tmp[i][0]!=s: cnt+=1 if tmp[i][0] == s: print(cnt);break cs 2021. 2. 8.
[백준] 20205 1 2 3 4 5 6 7 8 9 10 import sys n,k=map(int, sys.stdin.readline().split()) for i in range(n): ans=[] tmp=list(map(int, sys.stdin.readline().split())) for j in range(len(tmp)): for _ in range(k): ans.append(tmp[j]) for j in range(k): print(*ans) Colored by Color Scripter cs 2021. 2. 8.
[백준] 20154 1 2 3 4 5 6 7 8 9 alpha='ABCDEFGHIJKLMNOPQRSTUVWXYZ' numbers='32123333113133122212112221' cnt=0 s=input() for i in range(len(s)): cnt+=int (numbers[alpha.index(s[i])]) cnt%=10 if cnt%2==0: print("You're the winner?") else: print("I'm a winner!") cs 특이사항은 문제 그림을 보면 토너먼트 식으로 진행하는 것 처럼 돼있는데 이게 토너먼트를 구현하려고하니 두통이 심해져서 그냥 왼쪽에서부터 쭉 더하는 것도 같지 않을까? 라고 해서 손으로 풀어봤는데 같습니다. Easy peasy lemon squeezy 2021. 2. 8.
[백준] 20113 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import sys n=int(sys.stdin.readline()) ans=[0]*(n+1) imposter=list(map(int, sys.stdin.readline().split())) for i in imposter: ans[i]+=1 ans[0]=0 mymax=max(ans) cnt=0 for i in range(len(ans)): if ans[i]==mymax: cnt+=1 if cnt!=1: print('skipped') else: for i in range(len(ans)): if ans[i] == mymax: print(i);break cs 일단 저는 list로 입력받아서 해당하는 플레이어를 카운팅 했구요 특이사항으로는 이 .. 2021. 2. 8.