[Coding Test]/[백준]
[백준] 2754 파이썬(python) : 학점계산
https://www.acmicpc.net/problem/2754 2754번: 학점계산 어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. A+: 4.3, A0: 4.0, A-: 3.7 B+: 3.3, B0: 3.0, B-: 2.7 C+: 2.3, C0: 2.0, C-: 1.7 D+: 1.3, D0: 1.0, D-: 0.7 F: 0.0 www.acmicpc.net score = { 'A+' : 4.3, 'A0' : 4.0, 'A-': 3.7, 'B+' : 3.3, 'B0' : 3.0, 'B-' : 2.7, 'C+' : 2.3, 'C0' : 2.0, 'C-' : 1.7, 'D+' : 1.3, 'D0' : 1.0, 'D-' : 0.7, 'F' : 0.0 } print(..
[백준] 11718 파이썬(python) : 그대로 출력하기
11718번: 그대로 출력하기 파일의 끝(EOF)에 대해 생각해 볼 수 있는 문제 파이썬으로 풀시 input()과 sys.stdin.readline()의 차이를 알 수 있는 문제다. 입력값이 없을때 input()은 EOFError를 발생시키고 sys.stdin.readline()은 빈 문자열을 반환해준다. input() 사용 정답 코드) while True: try: print(input()) except EOFError: break sys.stdin.readline() 사용 오답 코드) import sys while True: try: print(sys.stdin.readline().rstrip()) except EOFError: break 참고자료 10820번 : 문자열 분석 파이썬 : try~exc..
[백준] 1059 파이썬(python) : 좋은 구간
1059번 : 좋은 구간 브루트포스라기보단 수학문제다. 공식을 찾아내야 풀 수 있다. 예제2에서 4 8 13 24 30이 주어진 숫자들이고 n이 10일때 [9, 10], [9, 11], [9, 12], [10, 11], [10, 12]이므로 범위안에서 시작값이 n보다 작은 수일 경우 n을 포함하는 경우와 n이 시작 값일 경우가 있다. (확정한 범위에서 n보다 작은 수의 개수) * (확정한 범위에서 n을 포함한 큰 수의 개수) + (확정한 범위에서 n보다 큰 수의 개수) import sys l = int(sys.stdin.readline()) numbers = list(map(int, sys.stdin.readline().split())) n = int(sys.stdin.readline()) numbers..
[백준] 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 ..