취뽀 기록

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

코드트리 풀이 70

[코드트리] 문자열 순회하기 > Run Length 인코딩

문자열 A가 주어졌을 때 문자열 A에 Run-Length Encoding을 적용한 이후의 결과를 구해보려고 합니다. Run-Length Encoding이란 간단한 비손실 압축 방식으로, 연속해서 나온 문자와 연속해서 나온 개수로 나타내는 방식입니다. 예를 들어, 문자열 A가 aaabbbbcbb인 경우 순서대로 a가 3번, b가 4번, c가 1번 그리고 b가 2번 나왔으므로 Run-Length Encoding을 적용하게 되면 a3b4c1b2가 됩니다. 문자열 A가 주어졌을 때, Run-Length Encoding을 적용한 이후의 결과를 출력하는 프로그램을 작성해보세요. # 변수 선언 및 입력: A = input() # 변환 encoded = "" # 입력의 첫번째 값을 읽고 초기화합니다. curr_char..

[코드트리] 문자열 리스트 관리 > 특정 문자로 시작하는 문자열

알파벳 소문자로 이루어진 n개의 문자열이 주어지고, 알파벳 한 개가 주어졌을 때, 해당 알파벳으로 시작하는 문자열의 개수와 그 문자열들의 길이의 평균을 구하는 프로그램을 작성해보세요. # 입력 n = int(input()) # 문자열을 구현해 입력받습니다. string = [ input() for _ in range(n) ] a = input() len_sum = 0 cnt = 0 # 조건에 맞는 문자열의 총 길이와 개수를 계산해줍니다. for elem in string: if elem[0] == a: len_sum += len(elem) cnt += 1 # 구하고자 하는 값을 출력합니다. print(f"{cnt} {len_sum / cnt:.2f}") # 나의 풀이 --------------------..

[코드트리] 문자열 리스트 관리 > 문자열의 총 길이 구하기

알파벳으로 이루어져 있고 공백을 포함한 10개의 문자열이 주어지면 모든 문자열의 총 길이의 합을 구하여 출력하는 프로그램을 작성해보세요. # 공백 단위로 문자열을 입력받습니다. string = input().split() len_all = 0 # 각 단어 당 문자열의 길이를 확인하여 총 길이에 더해줍니다. for elem in string: leng = len(elem) len_all += leng # 문자열의 총 길이를 출력합니다. print(len_all) # 나의 풀이 ---------------------------- arr = list(map(str, input().split())) sum_len = 0 for i in range(len(arr)): sum_len += len(arr[i]) pr..

[코드트리] 문자열 리스트 관리 > 문자열 역순으로 출력하기

알파벳으로 이루어진 4개의 문자열이 주어지면 입력받은 역순으로 출력하는 프로그램을 작성해보세요. # 문자열을 입력받습니다. string = [ input() for _ in range(4) ] # 입력받은 문자열을 역순으로 출력합니다. for i in range(3, -1, -1): print(string[i]) # 나의 풀이 ---------------------------- arr = [ input() for i in range(4) ] for i in range(len(arr)): print(arr[3-i])

공백있는 문자열 한번에 입력받기 > 공백을 기준으로 출력

공백을 포함한 문자열이 두 줄 주어졌을 때, 주어진 문자열을 공백을 제외하여 다시 출력하는 프로그램을 작성해보세요. # 공백을 포함한 문자열을 입력받습니다. string = input() string2 = input() # 문자열을 전부 순회하며 공백을 제외한 모든 문자를 출력합니다. for elem in string: if elem != " ": print(elem, end="") for elem in string2: if elem != " ": print(elem, end="") # 나의 풀이 ------------------------------------ a = input() b = input() a = a.replace(" ", "") b = b.replace(" ", "") print(a+b)

[코드트리] 공백있는 문자열 한번에 입력받기 > 문자 개수 세기

첫 번째 줄에 공백을 포함할 수도 있는 문자열이 주어지고, 두 번째 줄에 소문자 알파벳이 주어지면 앞서 주어진 문자열에 해당 소문자 알파벳이 몇 개 있는지 세어 출력하는 프로그램을 작성해보세요. # 공백을 포함한 문자열을 입력받습니다. string = input() # 소문자 알파벳을 입력받습니다. a = input() cnt = 0 # 문자열에서 주어진 알파벳이 몇번 나오는지 확인합니다. for elem in string: if elem == a: cnt += 1 # 주어진 알파벳이 나온 횟수를 출력합니다. print(cnt) # 나의 풀이 ----------------------------------------- a = input() b = input() cnt = 0 for i in range(le..

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

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

[코드트리] 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)