본문 바로가기

🔅코딩테스트 공부🔅213

[백준] 4344번 평균은 넘겠지(with python) https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 1. 내가 작성한 코드 c = int(input()) #테스트 케이스 C의 개수 for i in range(c): arr = list(map(int, input().split())) #테스트케이스 입력 score = arr[1:] #과목 수를 나타내는 인덱스 제외하고 SCORE 리스트에 넣음 result = [] avg = sum(score)/arr[0] #평균 구하기 for j in arr[1:]: #총 평균보다 큰 학생 찾기 if j > avg: result.append.. 2023. 1. 18.
[백준] 8958번 OX퀴즈(with python) https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) for _ in range(n): arr = list(input()) b = [] sum = 0 for i in range(len(arr)): if i == 0: if arr[i] == 'O': b.append(1) sum = sum+1 else : b.append(0) else : if arr[i] == 'O': b.app.. 2023. 1. 18.
[백준] 3052번 나머지(with python) https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 1. 내가 작성한 코드 a = [] result = [] for _ in range(10): num = int(input()) a.append(num%42) for j in a: if j not in result: result.append(j) print(len(result)) set함수를 이용하려고 했는데 계속 안되길래 for문과 not in 구문을 이용해 구했다. 왜 set 함수가 안써졌나~ 확인해보니 변수를 할당하지 않고 set(result)라고만 적어서 그런다.. 2023. 1. 18.
[백준] 5597번 과제 안 내신 분..?(with python) https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 1. 내가 작성한 코드 a = [] b = [] for _ in range(28): a.append(int(input())) for i in range(1,31): if i in a: pass else: b.append(i) b.sort() for j in range(len(b)): print(b[j]) j = j+1 이 문제도 풀면서 ,, for문을 세 번이나 쓴다고,,? 와 같은 .. 2023. 1. 18.
[백준] 1110번 더하기 사이클(with python) https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 1. 내가 작성한 코드 (틀림, 수정 필요) c = 0 sum = '0' new = input() #while new != str(sum): if int(new) < 10: new = '0' + new c = c+1 print(new, sum) else: sum = int(new[0])+int(new[1]) new = new[1] + str(sum[-1]) c = c+1 print(.. 2023. 1. 17.
[백준] 11021번 A+B-7(with python) https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 1. 내가 작성한 코드 t = int(input()) for i in range(1,t+1): a,b = map(int, input().split()) print("Case #",end="") print(i,end='') print(":",a+b) ㅋㅋㅋ ㅠㅠ pirnt 함수 안에 , 를 넣어서 출력하면 띄어쓰기가 되는데?! 좋은 방법이 있을텐데?! 하고 풀었다. 여윽시나 문자열 포매팅을 안쓰다 보니 까먹은 것,, 외우자 💦 ("Case #"+i) 와 같이 +를 사.. 2023. 1. 17.
[백준] 25304번 영수증(with python) https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 1. 내가 작성한 코드 x = int(input()) #총금액 n = int(input()) #테스트케이스 개수 sum = 0 for i in range(1, n+1): a,b = map(int, input().split()) sum = a * b + sum if sum == x : print("Yes") else : print("No") 단계별 풀어보기를 먼저 풀면 좋다고 해서 푸는즁,, 브론즈 5 마음.. 2023. 1. 17.
[백준] 10989번 수 정렬하기3(with python) https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 1. 내가 작성한 코드 N = int(input()) arr = [int(input()) for _ in range(N)] arr.sort() for i in range(N): print(arr[i]) 전 문제와 상당히 흡사해서 '이정도는 쉽지'라고 생각하며 풀었는데, 메모리 초과로 틀렸다 😥 2. 틀린 이유 내가 작성한 코드처럼 새로운 리스트를 정의해서 하나씩 입력값을 삽입하면 메모리 재할당이 이루어진다. 본 문제.. 2023. 1. 13.
[백준] 2751번 수 정렬하기(with python) https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 내가 작성한 코드 N = int(input()) arr = [int(input()) for _ in range(N)] arr.sort() for i in range(N): print(arr[i]) 이 문제의 경우는 수의 범위가 1,000,000까지 주어지기 때문에 시간복잡도를 고려해서 문제를 풀어야 한다고 한다 .. 본인은 아직 시간복잡도 및 고급 정렬(삽입, 버블 등) 알고리즘을.. 2023. 1. 13.