반응형

개발 연습장/백준 문제풀이 221

[파이썬, Python] 백준 1546: 평균

문제 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 코드 newscoresum = 0 N = int(input()) score = list(map(int, input().split())) M = max(score) for i in range(len(score)): n = score[i]/M*100 n = float(n) newscoresum += n print(newscoresum/len(score)) 설명 새로운 평균의 합계를 받아주기..

[파이썬, Python] 백준 3052: 나머지

문제 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 코드 remain = [] for i in range(10): text = int(input()) text = text % 42 if text not in remain: remain.append(text) else: continue print(len(remain)) 설명 특정 수를 입력 받고, 42로 나눈 나머지를 구하는 문제이다. 나머지는 %로 구하고, 이 중에 겹치지 않는 나머지를 remain에 append 해준다. if문에 걸리지 않는 조건 같은 경우에는 ..

[파이썬, Python] 백준 5597: 과제 안 내신 분..?

문제 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 코드 num_list = [] for _ in range(28): num_list.append(int(input())) for i in range(1, 31): if i not in num_list: print(i) 설명 딱히 어려운 것은 없는 반복문 문제였다. 출석 번호를 입력 받고, 없는 숫자를 찾아서 출력해주면 되는 간단한 문제이다. 30명중에 28명이 제출했으므로, 28개..

[파이썬, Python] 백준 2562: 최댓값

문제 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 코드 A = [] for i in range(9): text = int(input()) A.append(text) print(max(A)) print(A.index(max(A))+1) 설명 A라는 빈 리스트를 만들어준다. 이후, 반복문을 통해 A에 각 숫자를 넣어준다. max를 통해 최대값을 출력한다. 몇 번째 수인지 알아야 하므로 수의 위치를 알려주는 ind..

[파이썬, Python] 백준 10818: 최소, 최대

문제 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 N = int(input()) A = list(map(int,input().split())) print(min(A), max(A)) 설명 크게 어려운 것은 없고 min과 max를 처음 접하게되는 문제다. min은 자료형 내의 최소값을, max는 자료형 내의 최대값을 반환하는 특징을 가지고 있다.

[파이썬, Python] 백준 10871: X보다 작은 수

문제 https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 N, X = map(int, input().split()) A = list(map(int, input().split())) for i in range(N): if A[i] < X: print(A[i], end=" ") 설명 차례대로 N, X를 입력받아준다. 이후 A를 리스트의 형태로 입력 받아준다. 리스트를 차례대로 X와 비교하며 출력을 해주어야 하므로, 반복문을 사용하..

[파이썬, Python] 백준 10807: 개수 세기

문제 https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 코드 n = int(input()) num_list = list(map(int, input().split())) v = int(input()) cnt = 0 for i in num_list: if i == v: cnt += 1 print(cnt) 설명 정수의 개수 n 을 입력 받아 준다. num_list라는 변수에 리스트의 값을 입력 받아 준다. v를 통해 찾아야 할 정수를 입력..

[파이썬, Python] 백준 1110: 더하기 사이클

문제 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 코드 N = int(input()) num = N cnt = 0 while True: a = num //10 b = num % 10 c = (a+b)%10 num = b*10 + c cnt += 1 if(num==N): break print(cnt) 설명 10의 자리 수와 1의 자리 수를 합쳐서 새로운 수를 만들어 원래의 수로 돌아오는 사이클을 만들면 되는 문제이다. 우선 숫자..

[파이썬, Python] 백준 10951: A+B - 4

문제 https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 while True: try: a, b = map(int, input().split()) except: break print(a+b) 설명 문제를 딱 보았을 때, 무엇을 의미하는지 모를 수 있다. 오류를 처리하기 위한 문제인데, try와 except라는 함수를 사용하게 된다. try를 통해서 오류가 나지 않았을 때, 동작을 지정해주는 것은 일반적인 반복문과 동일하다. except를 통해서 오류가 생겼을 때(입력이 string일 경우 등) 예외 처리를 해주자.

[파이썬, Python] 백준 10952: A+B - 5

문제 https://www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 while True: a, b = map(int, input().split()) if a == 0 and b == 0: break else: print(a+b) 설명 while을 처음 사용했던 문제다. for 반복문과 비슷하지만 끝을 지정하지 않으면 무한 루프를 돌릴 수 있다는 특징을 가지고 있다. 입력이 0과 0으로 주어지지 않으면 무한히 반복을 해야하므로, True 일 동안 (무한히 동작) 입력을 받고, 0,0 이 입력으로 주어지면 break를 통해서 반복문을 탈출한다.

반응형