Problem Solving/Baekjoon
-
[백준] 8958번 문제 (OX퀴즈) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 5. 16. 00:17
n = int(input()) for _ in range(n): quiz = list(input()) total = 0 score = 1 for i in range(len(quiz)): if quiz[i] == 'O': total += score score += 1 else: score = 1 print(total) 내가 작성한 코드 입력 OX문제가 주어지면 O가 나열된 개수를 세는 문제인데 예를 들어 OXOOOXOO 라고 입력이 주어지면 1+0+1+2+3+0+1+2 이런식으로 O가 여러개 연이어 있으면 +1씩 증가해 출력을 해주어야 한다. 그에 따른 방법으로 나는 기본적으로 점수를(score)를 1로 할당해 놓고 for 문에서 연이어 O를 찾을때마다 += 1 을 해줌으로써 연이은 O의 점수를 입력 받을..
-
[백준] 4673번 문제 (셀프 넘버) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 5. 16. 00:04
# data = 생성자를 통해 나온 숫자 arr = [] for i in range(1, 10000): nums = list(str(i)) data = i for j in range(len(nums)): data += int(nums[j]) arr.append(data) for k in range(1, 10000): if k not in arr: print(k) 내가 작성한 코드 우선 1~10000 사이에 생성자를 통해 나올 수 있는 숫자를 구해 arr에 넣어줬다. 그리고 다시 1~10000 사이를 돌며 arr에 없는 숫자를 print해주어 생성자가 없는 셀프넘버를 구해줬다. 분명 더 적은 양과 효율적으로 코드를 작성할 수 있을 것 같지만 우선 여기까지..
-
[백준] 4344번 문제 (평균은 넘겠지) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 5. 15. 23:33
import sys c = int(input()) total = [] for _ in range(c): data = list(map(int, sys.stdin.readline().split())) personNum = data[0] avg = 0 for i in range(personNum): avg += data[i+1] avg = avg / personNum overNumCnt = 0 for j in range(personNum): if data[j+1] > avg: overNumCnt += 1 total.append((overNumCnt/personNum) * 100) for k in total: print("%.3f%%" % (k)) 내가 작성한 코드 문제에 큰 특별한 점은 없어서 주어진 내용대로..