문제 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 코드 My answer n=int(input()) d=[0]*(n+1) d[1]=0 for i in range(2,n+1): tmpa,tmpb=n,n if(i%2==0): tmpa=d[i//2]+1 if(i%3==0): tmpb=d[i//3]+1 tmpc=d[i-1]+1 d[i]=min(tmpa,tmpb,tmpc) print(d[n]) Another answer n = int(input()) li = [0]*(n+1) # 0,1,2,...,n li[1] = 0 for i in range(2,n+1) : li[i] = min((li[i//3]+i%3+1),(li[i//2]..
코딩테스트/백준[Python]
백준 파이썬 코딩테스트 문제 풀이문제 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 코드 My answer h,w=map(int,input().split()) if(h==1 or w==1): answer=1 elif(h=5): if(h>=3):answer=max(4,5+(w-7)) else:answer=4 print(answer) Another answer N,M=map(int,input().split()) if N==1: print(1) elif N==2: print(min(4,(M+1)//2)) else: print(max(M-2,min(4,M))) 풀이 우선 코드 설명은 h가 1이면 지금있는 칸 끝..
문제 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 코드 My answer(시간초과) First Try import sys from itertools import combinations res=[] while(1): n=int(sys.stdin.readline()) if(n==0):break tmp=[i for i in range(3,n+1) if i%2!=0] for i in range(len(tmp)): if(tmp[i]!=0): for j in range(i+1,len(tmp))..
문제 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 코드 My answer n,res=list(map(int,[i for i in input()])),-1 tmp="" if(sum(n)%3!=0 or (0 not in n)): print(-1) else: n=sorted(n,reverse=True) for i in n: tmp+=str(i) print(int(tmp)) Another answer n=int("".join(sorted(input())[::-1])) print(n if n%30==0else-1) 풀..
문제 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 코드 My answer e,s,m=list(map(int,input().split())) if(e==15):e-=15 if(s==28):s-=28 if(m==19):m-=19 n=1 while(1): if(n%15==e and n%28==s and n%19==m): print(n) break else:n+=1 Another answer e, s, m = map(int, input().split()) a = (6916 * e + 4845 * s + 4200 * m..