백준 153

[백준] 2615 오목

www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 더보기 badukpan = list() max_width = 19 plus_width = 5 for _ in range(plus_width): tmp = [0]*(max_width+2*plus_width) badukpan.append(tmp) for _ in range(max_width): tmp=[0] * plus_width tmp.extend(list(map(int, input().split()))) tmp..

STUDY/Algorithm 2021.02.09

[백준] 1011 Fly me to the Alpha Centauri

www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net import sys from math import sqrt input = sys.stdin.readline t=int(input()) for tc in range(t): x,y=map(int,input().split()) distance = y-x n=int(sqrt(distance)) if (n**2) == distance: print(2*n - 1) elif di..

STUDY/Algorithm 2021.02.07

[백준] 2839 설탕배달

www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net n=int(input()) result = 0 break_chk = False while n>0: #print(n) if n % 5 == 0: result += n // 5 break_chk = True break else: n -= 3 result += 1 if n==0: break_chk = True if break_chk: print(result) else: print(-1) 5kg짜리가 더 많아야하므로 나누어지면 ..

STUDY/Algorithm 2021.02.07

[백준] 2775 부녀회장이 될테야

www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net import sys input = sys.stdin.readline t = int(input()) for tc in range(t): K=int(input()) N=int(input()) floor =[[i for i in range(1,15)]] for k in range(1,K+1): tmp= [] for n in range(N): tmp.append(sum(floor[k-1][:n+1])) floor.append(tmp) print(floor[K..

STUDY/Algorithm 2021.02.07

[백준] 1193 분수찾기

www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net x=int(input()) dp = [0,1] result = 1 cnt = 1 while dp[-1] cnt가 홀짝에 따라 달라짐 if cnt%2: #odd ja=cnt+1-x+dp[-2] mo=x-dp[-2] else: #even ja=x-dp[-2] mo=cnt+1-x+dp[-2] print(f'{ja}/{mo}') 차례대로 배치했을 때 x번째 수가 몇번째 줄인지 찾기 위해 dp라는 리스트에 담았다. 해당되는 줄(cnt로 체크)에 따라 위로 올라가는지 아래로 내려가는지 판단했고, 그에따라 분자와 분모를 달리줬다.

STUDY/Algorithm 2021.02.07

[백준] 2504 괄호의값

www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net s=input() stack=[] result = 0 if s.count('(') != s.count(')') or s.count('[') != s.count(']'): s='' #반복문 안돌리기 try: for ch in s: tmp = [] #닫는 괄호를 만나는 경우에 여는 괄호를 만날때까지 다 꺼냄 if ch == ']': while stack!=[]: tmp_ch = stack.pop() if tmp_..

STUDY/Algorithm 2021.02.07

[백준] 3985 롤케이크

www.acmicpc.net/problem/3985 3985번: 롤 케이크 첫째 줄에 롤 케이크의 길이 L (1 ≤ L ≤ 1000)이 주어진다. 둘째 줄에는 방청객의 수 N (1 ≤ N ≤ 1000)이 주어진다. 다음 N개 줄에는 각 방청객 i가 종이에 적어낸 수 Pi와 Ki가 주어진다. (1 ≤ Pi ≤ Ki www.acmicpc.net l=int(input()) # 롤케이크 길이 n=int(input()) # 방청객의 수 want=[] max_if, max_real = 0, 0 idx_if, idx_real = 0, 0 for i in range(n): tmp = tuple(map(int,input().split())) if (tmp[1]-tmp[0]+1) > max_if: max_if = tmp[..

STUDY/Algorithm 2021.02.06

[백준] 1334 다음 팰린드롬 수

www.acmicpc.net/problem/1334 1334번: 다음 팰린드롬 수 팰린드롬 수는 앞으로 읽어도, 뒤로 읽어도 같은 숫자이다. 101, 4, 6666와 같은 숫자는 팰린드롬 수이고, 10, 564, 15452와 같은 숫자는 아니다. 어떤 수 N이 주어질 때, N보다 큰 팰린드롬 수 중에서 가 www.acmicpc.net s_num = input() len_num=len(s_num) s_num_half= s_num[:(len_num+1)//2] result= '' if s_num == '9'*len_num: print(int(s_num)+2) elif len_num == 1: print(int(s_num)+1) elif len_num%2: # odd tmp = s_num_half + s_nu..

STUDY/Algorithm 2021.02.05

[백준] 1463 1로만들기

www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 실버 3 문제를 무턱대고 풀어봤으니 정말 심하게 혼났다.. 높은 난이도는 조금더 공부하고 다시 도전해야겠다. import sys input=sys.stdin.readline n=int(input()) lst=[0,0,1,1,] # 시간 제한이 0.15s이므로 DP를 해야함. # 0 경우에는 필요없는 경우의 수이므로 0, # 인덱스를 쉽게쓰기위해사용 # 1은 0, 2와 3은 1번 걸림(시작부분) if n

STUDY/Algorithm 2021.02.05