백준 문제풀이 63

[백준 2751번 문제] 수 정렬하기2

이 문제는 입력받은 수를 오름차순으로 정렬해서 출력하는 문제이다. 저번에도 같은 수 정렬하는 문제를 풀었었는데 다시 그 때 푼 방식을 보니깐 이중 for문으로 배열을 다 비교해서 정렬하는 방식으로 풀었었다. 지금은 sort함수도 알게 되어서 더 편하게 문제를 풀 수 있었다. 처음에 푼 방식은 배열에 입력받아서 sort함수로 정렬하고 for문으로 배열의 수를 출력하는 방식으로 구현했었는데 시간초과가 발생했다ㅠㅠ import sys num = int(sys.stdin.readline()) nums = [] for i in range(num): nums.append(int(sys.stdin.readline())) for i in sorted(nums): print(i) 그래서 for문에 sorted()함수를 ..

백준 문제풀이 2022.05.12

[백준 1181번 문제] 단어 정렬

이 문제는 입력받은 수 만큼 단어를 입력받아서 중복된 단어를 제거하고 사전순으로 나타내는 문제이다. n = int(input()) word = [] for i in range(n): word.append(input()) set_word = set(word) word = list(set_word) word.sort() word.sort(key = len) for i in word: print(i) 입력받은 수 만큼 for문을 통해서 입력받은 값을 word 배열에 저장한다. 그 다음에 set함수를 이용해서 중복된 값을 제거한 후에 list 함수를 이용해서 word배열에 다시 저장을 한다. 그다음 sort함수를 이용해서 알파벳 순으로 정렬한 후에 for문을 이용해서 정렬된 순으로 프린트하면 끝!

백준 문제풀이 2022.05.10

[백준 1003번 문제] 피보나치 함수

이 문제는 피보나치 함수를 이용해서 계산을 할 때 0과 1을 몇번 리턴하는지 카운트하는 문제이다. 처음에는 단순히 피보나치 함수를 만들고 그 안에서 0과 1을 카운트 하도록 구현하였다. def fibo(n): if n == 0: # print("0") global cnt_zero cnt_zero += 1 return 0 elif n == 1: # print("1") global cnt_one cnt_one += 1 return 1 else: return fibo(n-1) + fibo(n-2) cnt_zero = 0 cnt_one = 0 num = int(input("")) for i in range(num): n = int(input("")) fibo(n) print(cnt_zero, cnt_one) c..

백준 문제풀이 2022.05.09

[백준 1002번 문제] 터렛

점점 문제의 난이도가 어려워지고 프로젝트기간이여서 티스토리에 코드 리뷰하는것에 소홀했었던거 같다... 이 문제는 두개의 터렛이 위치한 좌표가 주어지고 그 터렛에서 다른 터렛이 위치한 곳까지의 거리가 주어졌을 때, 그 터렛이 위치할 수 있는 경우의 수를 계산해서 결과값을 보여주는 문제이다. 각각의 터렛의 좌표와 타겟터렛까지의 거리가 미리 주어져서 터렛의 위치에서 다른 타겟 터렛이 위치할 수 있는 지점을 그려보면 원이 그려진다. 그리하여, 처음에 두개의 터렛이 주어지기 때문에 두개의 원의 위치를 이용해서 타겟 터렛의 위치할 수 있는 점의 개수를 구하기 위해서는 두 터렛사이의 거리를 알아야한다. x1, y1, r1, x2, y2, r2 = map(int,input().split()) dis = math.sqr..

백준 문제풀이 2022.05.03

[백준 8958번 문제] OX퀴즈

이 문제는 입력한 수만큼 OX퀴즈의 정답결과(O,X)를 입력받아서 연속된 O의 점수는 누적되어 계산한다. 중첩 for문을 이용해서 입력받은 정답결과를 리스트에 저장하고 각 인덱스에 접근하는 for문을 이용해서 O인경우에는 score와 total_score에 1점씩 더해주고 X가 나온경우에는 score를 0으로 초기화 시켜서 연속된 경우에만 점수가 이어서 더해지도록 구현하였다. num = int(input()) for i in range(num): test = list(input()) score = 0 total_score = 0 for i in test: if i == 'O': score += 1 total_score += score else: score = 0 print(total_score)

백준 문제풀이 2022.02.18

[백준 4344번 문제] 평균은 넘겠지

이 문제는 1차원 배열을 이용하여 주어진 테스트 케이스 개수만큼 for문을 활용하여 데이터를 리스트에 저장한다. data = list(map(int, input().split())) --> map함수를 이용하여 list에 데이터 저장하기 첫번째 숫자는 각 점수의 갯수를 입력받은 것이고 그 뒤에는 그 갯수만큼 점수를 입력받는 것이다. 그리고 나서 평균을 구하여 평균을 넘는 점수가 몇 퍼센트인지 결과를 출력하는 문제이다. n = int(input("")) for i in range(n): data = list(map(int, input().split())) num = data[0] total_score = sum(data[1:]) avg = total_score / num cnt = 0 for score i..

백준 문제풀이 2022.02.07

[백준 1546번 문제] 평균

이 문제는 입력한 수만큼의 점수를 입력받아서 가장 높은 점수를 찾아서 각 점수를 주어진 식으로 재계산하여 리스트에 저장한 후에 평균을 구하여 출력해준다. scores = list(map(int, input().split())) --> split()함수를 이용해서 공백을 기준으로 나누어 list로 저장한다. high_score = max(scores) --> max 함수를 이용해서 리스트 중 가장 큰 숫자를 저장한다. num = int(input("")) scores=[] scores = list(map(int, input().split())) high_score = max(scores) new_scores = [] for i in range(num): new_score = scores[i] / high_..

백준 문제풀이 2022.02.03