취뽀 기록

#열심히 살자 #취업 #공부

코드트리 해설 67

[코드트리] Min/Max > 두 숫자의 차의 최솟값

n개의 숫자가 오름차순으로 주어집니다. 이 중 서로다른 두 개의 숫자를 골랐을 때, 두 숫자의 차가 최소가 되는 경우의 그 차이를 출력하는 프로그램을 작성해보세요. # 변수 선언 및 입력 n = int(input()) arr = list(map(int, input().split())) # 숫자들이 오름차순으로 주어지기 때문에, # 두 숫자의 차의 최솟값은 반드시 인접한 두 숫자의 차 중에 최솟값이 있습니다. # 초기값을 적습니다. 최소가 될 첫 번째 후보입니다. min_val = arr[1] - arr[0] # 나머지 원소들을 보며 최솟값을 갱신합니다. for i in range(2, n): if min_val > arr[i] - arr[i - 1]:# 지금까지 나왔던 값들 보다 더 작은 값이라면 min..

[코드트리] Min/Max > 500 근처의 수

10개의 정수를 입력받아 500 미만의 수 중 가장 큰 수와 500 초과의 수 중 가장 작은 수를 출력하는 프로그램을 작성해보세요. # 배열에 정수를 입력받습니다. arr = list(map(int, input().split())) # max_val : 500 미만의 가장 큰 수, min_val : 500 초과의 가장 작은 수 max_val = 1 min_val = 1000 # 10개의 숫자들 중 500근처의 수들을 구합니다. for elem in arr: if elem max_val: max_val = elem if elem > 500 and elem < min_val: min_val = elem # 구한 값을 출력합니다. print(max_val, min_val) # 나..

[코드트리] Min/Max > 중복되지 않는 숫자 중 최대(★)

N개의 숫자가 주어졌을 때, 중복하여 등장하지 않는 숫자 중 최댓값을 구하는 프로그램을 작성해보세요. # 변수 선언 및 입력: n = int(input()) nums = list(map(int, input().split())) # 최댓값 찾기 max_num = -1 for curr_num in nums: # 최대가 될 수 있는 후보입니다. if max_num < curr_num: # 갱신할 수 있는지 확인하기 위해 이 숫자의 등장 빈도를 셉니다. count = 0 for elem in nums: if elem == curr_num: count += 1 # 이 숫자가 배열에서 유일할때만 갱신합니다. if count == 1: max_num = curr_num print(max_num)

[코드트리] Min/Max > 999 또는 -999

최대 100개의 세 자리 이하 정수가 차례로 주어지다가 999나 -999가 주어지면 입력 받는 것을 종료하고 이 숫자를 제외한 수 중 가장 큰 숫자와 가장 작은 숫자를 출력하는 프로그램을 작성해보세요. # 배열에 정수를 입력받습니다. arr = list(map(int, input().split())) max_val = arr[0]; min_val = arr[0]; # 주어진 숫자들 중 최댓값과 최솟값을 구합니다. for elem in arr: if elem == 999 or elem == -999: break if elem > max_val: max_val = elem if elem < min_val: min_val = elem # 최댓값과 최솟값을 출력합니다. print(max_val, min_val)..

[코드트리] Min/Max > n개의 숫자 중 최소

N개의 정수가 입력으로 주어졌을 때, 그 중 최솟값과 최솟값을 갖는 원소의 개수를 출력하는 코드를 작성해보세요. # 해설 1 -------------------------------------------------- # 변수 선언 및 입력 n = int(input()) arr = list(map(int, input().split())) # 초기값을 적습니다. 최소가 될 첫 번째 후보입니다. min_val = arr[0] cnt = 1 # Case 1 # 나머지 원소들을 보며 답을 갱신합니다. for i in range(1, n): # Case 1 if min_val > arr[i]: # 지금까지 나왔던 값들 보다 더 작은 값이라면 min_val = arr[i] # 최초의 최솟값이 되므로 그 값을 갱신하고..

[코드트리] 탐색 > 2가 3번째로 등장하는 위치

n개의 정수가 주어졌을 때, 2 가 3 번째로 등장할 때 몇 번째 위치의 글자인지 출력하는 프로그램을 작성해보세요. # 정수 n과 배열을 입력받습니다. n = int(input()) arr = list(map(int, input().split())) # 2가 나온 횟수를 카운트해 줍니다. cnt = 0 for i in range(n): if arr[i] == 2: cnt += 1 # 2가 3번째로 등장할 때 그 위치를 출력합니다. if cnt == 3: print(i + 1) break # 나의 풀이 ---------------------------------------- n = int(input()) arr = list(map(int, input().split())) cnt = 0 idx = -1 fo..

[코드트리] Count 배열 > 나눗셈의 나머지

두 정수 a, b가 주어지면, a를 b로 나눈 몫을 a에 계속해서 저장하는 것을 반복하려고 합니다. a가 1이하가 되기 전 까지 나눗셈을 반복한다고 할 때, 각 나눗셈 연산마다 나온 나머지들이 등장한 횟수를 제곱하여 그 합을 출력하는 프로그램을 작성해보세요. 예를 들어, a = 1000, b = 4인 경우 나눗셈은 다음과 같이 진행됩니다. 1000÷4=250 ... 0 250÷4=62 ... 2 62÷4=15 ... 2 15÷4=3 ... 3 3÷4=0 ... 3 5번의 나눗셈 동안 나머지는 0이 1번, 2가 2번, 3이 2번 등장했으므로, 각 나머지가 나온 횟수의 제곱의 합은 12+22+22=9 입니다. # 변수 입력받기 a, b = tuple(map(int, input().split())) coun..

[코드트리] Count 배열 > 코로나 메뉴얼 2

감기 증상이 있으면 Y, 감기 증상이 없으면 N으로 나타내기로 하고, 체온을 쟀을 때 수치에 따라 진료소를 다르게 구분하려고 합니다. 증상도 있고 37℃ 이상일 때 A 증상은 없지만 37℃ 이상일 때 B 증상은 있지만 체온은 정상일 때 C 둘 다 괜찮은 경우엔 D 한 번에 3명씩 검사하는데 A로 가는 사람이 2명 이상 나올때는 위급상황 E로 분류합니다. # 카운팅 배열의 1에는 A인 사람의 수가, 2에는 B가, 3에는 C가, 4에는 D가 들어감 count_arr = [0] * 5 # s와 t를 입력받은 후 카운팅 배열을 통해 각각의 빈도 저장 for _ in range(3): s, t = input().split() t = int(t) # type num = 분류 번호 if t >= 37 and s ==..

[코드트리] Count 배열 > 십의 자리 숫자(★)

세자리 미만의 정수가 주어지다가 0이 주어지면 그 0을 제외하고 그 때까지 입력된 정수의 숫자들의 십의 자리 숫자가 각각 몇 개인지 작은 수부터 출력하는 프로그램을 작성해보세요. 단, 0이 첫 번째 부터 주어지지않는다고 가정해도 좋습니다. # 배열에 주어진 수를 입력받아 저장합니다. arr = list(map(int, input().split())) count_arr = [0] * 10 # 카운팅 배열을 통해 십의 자리수 각각의 빈도 저장, 0이 나오면 for문에서 빠져나오기 for elem in arr: if elem == 0: break if elem < 10: continue count_arr[elem // 10] += 1 # 1부터 9까지 나온 횟수를 출력 for i in range(1, 10):..

[코드트리] Count 배열 > 주사위 놀이

주사위를 10번 던진다고 합니다. 던질 때마다 나온 숫자가 주어지면 각 숫자가 몇 번씩 나왔는지 출력하는 프로그램을 작성해보세요. # 배열에 주어진 수를 입력받아 저장 arr = list(map(int, input().split())) count_arr = [0] * 7 # 카운팅 배열을 통해 각각의 빈도 저장 for elem in arr: count_arr[elem] += 1 # 1부터 6까지 나온 횟수를 출력 for i in range(1, 7): print(f"{i} - {count_arr[i]}")