[Coding Test]
[백준] 1543 파이썬(python) : 문서 검색
https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net import sys papers = sys.stdin.readline().strip() word = sys.stdin.readline().strip() idx, cnt = 0, 0 while True: idx = papers.find(word, idx) if idx == -1: break cnt += 1 idx += len(word) print(cnt) 처음에 나머지 연산을 이용해서 순서를 따라가면 문..
[백준] 17626 파이썬(python) : Four Squares - 상세해설
https://www.acmicpc.net/problem/17626 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net dp[n-(j**2)] +1 : 자신보다 작은 제곱수 중에 가장 큰 값을 뺀값을 인덱스로 가지는 dp테이블의 값에 1을 더한 것 import sys import math n = int(sys.stdin.readline()) dp = [0]*50001 #1 dp[1] = 1 if n == int(math.sqrt(n))**2: #2 print(1) else: fo..
[백준] 1075 파이썬(python) : 나누기
https://www.acmicpc.net/problem/1075 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net import sys n = sys.stdin.readline().strip() f = int(sys.stdin.readline()) for i in range(100): if len(str(i)) == 1: i = '0'+str(i) tmp = n[0:-2]+str(i) #1 if int(tmp) % f == 0: if len(str(i)) == 1: print('0'+str(i)) else: print(i) break #1 ..
[백준] 2501 파이썬(python) : 약수 구하기
https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net import sys n, m = map(int, sys.stdin.readline().split()) arr = [] for i in range(1, 10001): if n % i == 0: arr.append(i) arr.sort() if len(arr) >= m: print(arr[m-1]) else: print(0)
[백준] 3040 파이썬(python) : 백설 공주와 일곱 난쟁이
https://www.acmicpc.net/problem/3040 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net import sys height = [ int(sys.stdin.readline()) for _ in range(9)] total = sum(height) for i in range(9): for j in range(i+1, 9): if 100 == total - (height[i]+height[j]): num1 = height[i] num2 = height[j] height.remove..
[백준] 6064 파이썬(python) : 카잉 달력
https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 정답을 k라 하면 k-x에 m을 나누면 나머지가 0이다 k-y에 n을 나누면 나머지가 0이다 x에 m을 더하면서 y를 뺴고 n으로 나눌때 0이 나오면 그때의 x가 정답이다. import sys t = int(sys.stdin.readline()) def f(m, n, x, y): while x