반응형

백준 파이썬 122

[파이썬, Python] 백준 4344: 평균은 넘겠지

문제 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 코드 C = int(input()) for _ in range(C): overmean = [] Nscore = list(map(int, input().split())) mean = (sum(Nscore) - Nscore[0])/(len(Nscore)-1) for i in range(1, len(Nscore)): if Nscore[i] > mean: overmean.append(Nscore[i]) else: continue per = len(overmean) / (len..

[파이썬, Python] 백준 8598: OX퀴즈

문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 코드 N = int(input()) for i in range(N): OX_list = list(input()) score = 0 totalscore = 0 for OX in OX_list: if OX == 'O': score += 1 totalscore += score else: score = 0 print(totalscore) 설명 우선 테스트 케이스의 개수를 N을 통..

[파이썬, 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] 백준 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를 통해서 반복문을 탈출한다.

[파이썬, Python] 백준 2438: 별 찍기 - 1

문제 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 코드 N = int(input()) for i in range(1, N+1): print("*" * i) 설명 모든 언어의 반복문을 연습하기 가장 적합한 별 찍기 연습 시간이다. 다른 언어의 경우 이중 반복문으로 작성하게 되는 경우가 많은데, 파이썬은 간단하게 한 줄의 반복문으로 작성이 가능하다. 우선 반복할 횟수인 N을 입력받고, 반복문을 실행해준다. 이 때, N의 횟수만큼 진행하려면 반복문의 종료지점은 N+1이어야 한다는 것을 명심하자. 별의 개수가 회차가 진행함에 따라 늘어나는데 이는 (출력..

[파이썬, Python] 백준 11021: A+B - 7

문제 https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 코드 T = int(input()) for i in range(T): a, b = map(int, input().split()) print("Case #%s: %d"%(i+1, a+b)) 설명 테스트 케이스 T를 입력받아 준다. 이후, T회 만큼 출력해야 하기에, 반복문을 통해 T회 만큼 반복시켜준다. 반복문 안에서 각각 a,b 를 입력받고 출력해주어야 하는데, 일반적으로 출력해오던 방식으로는 출력이 어렵다. 이를 위해서 다른 출력방식을 사용하여야 한다. 출력..

[파이썬, Python] 백준 15552: 빠른 A+B

문제 https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 코드 import sys T = int(sys.stdin.readline()) for i in range(T): a,b = map(int, sys.stdin.readline().split()) print(a+b) 설명 문제를 들어가보면 설명이 굉장히 길게 되어있다. 간단하게 요약을 하자면, input을 사용하는 것 대신, 'sys.stdin.readline'을 사용하면 입력 속도가 훨씬 빠르다는 것이다. 실제..

[파이썬, Python] 백준 25304: 영수증

문제 https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 코드 X = int(input()) N = int(input()) sum = 0 for i in range(N): a, b = map(int, input().split()) sum += a*b if sum == X: print("Yes") else: print("No") 설명 물건의 가격을 입력받고, 총합이 맞는지 비교하는 문제이다. 우선 x,n을 각각 입력받고, sum을 통해 합을 입력받을 변수를 ..

반응형