취뽀 기록

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

분류 전체보기 221

[코드트리] Min/Max > 가장 왼쪽에 있는 최댓값(★)

N개의 숫자가 주어졌을 때, 주어진 숫자들 중 최댓값의 위치를 출력합니다. 만약 최댓값이 여러 개라면, 가장 왼쪽에 있는 최댓값의 위치를 출력합니다. 그 이후에는 위에서 구한 최댓값의 위치보다 더 왼쪽에 있는 숫자들 중 최댓값을 구해 그 위치를 출력합니다. 이 경우에도 최댓값이 여러 개라면, 가장 왼쪽에 있는 최댓값의 위치를 출력합니다. 위의 과정을 끊임없이 반복하며, 최종적으로 첫 번째 원소가 뽑히게 되면 이 과정을 종료합니다. 이러한 과정을 거쳐 구해진 최댓값의 위치들을 출력하는 프로그램을 작성해보세요. # 변수 선언 및 입력 n = int(input()) a = list(map(int, input().split())) prev_max_idx = n # 첫 번째 원소가 최대가 되기 전까지 계속 반복합..

[코드트리] 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 > 자동차 단일 거래 이익 최대화하기(★)

향후 n년 간의 자동차 가격 정보가 미리 주어졌을 때, 자동차를 단 한 번 사서 되팔 때의 이익을 최대화하고자 합니다. 낼 수 있는 최대 이익을 출력하는 프로그램을 작성해보세요. 단, 자동차를 사기 전에는 팔 수 없습니다. # 해설 1 -------------------------------------------- # 변수 선언 및 입력: n = int(input()) price = list(map(int, input().split())) # 배열을 앞에서부터 순회하며 사는 시점의 후보를 선택합니다 max_profit = 0 for i in range(n): # 사는 시점의 다음 해부터 순회하며 파는 시점의 후보를 선택합니다 for j in range(i + 1, n): profit = price[j] ..

[코드트리] 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] # 최초의 최솟값이 되므로 그 값을 갱신하고..

[python] 주어진 숫자들 중 최댓값, 최솟값 구하기 구현

리스트 안의 숫자들 중 최댓값 구하기 arr = [1, 5, 2, 5, 3, 9] max_val = 0 for elem in arr: if elem > max_val: max_val = elem print(max_val) >> 9 만약 리스트 안의 숫자들이 모두 음수라면? 1. 주어지는 숫자들 값보다 더 작은 숫자를 초기값으로 설정하기 -> python에서는 -sys.maxsize 를 이용해 초기값 설정 가능 import sys arr = [-1, -5, -2, -5, -3, -9] max_val = -sys.maxsize for elem in arr: if elem > max_val: max_val = elem print(max_val) >> -1 2. max_val의 초기값을 첫 번째 원소로 하고, ..

[코드트리] 탐색 > 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..

[코드트리] 탐색 > 연속부분수열일까

n1개의 원소로 이루어져 있는 수열 A의 정보와, n2개의 원소로 이루어져 있는 수열 B의 정보가 주어졌을 때 수열 B가 수열 A의 연속부분수열인지를 판단하는 프로그램을 작성해보세요. 수열 B가 수열 A의 원소들을 연속하게 뽑았을 때 나올 수 있는 수열이라면 연속부분수열이라 부릅니다. 예를 들어 수열 A가 [1, 5, 2, 6] 일때 수열 B가 [5, 2]라면 수열 B는 수열 A의 연속 부분 수열이지만, 만약 수열 B가 [5, 6]이라면 연속 부분 수열이 아닙니다. import sys # 정수 n1과 n2를 입력받습니다. n1, n2 = tuple(map(int, input().split())) # arr1을 입력받습니다. arr1 = list(map(int, input().split())) # arr2..