Python 160

[Level.0] 특별한 이차원 배열(2)

문제 설명: n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요. 0 ≤ i, j 제한사항 1 ≤ arr의 길이 = arr의 원소의 길이 ≤ 1001 ≤ arr의 원소의 원소 ≤ 1,000모든 arr의 원소의 길이는 같습니다.문제 해결def solution(arr): for i in range(len(arr)): for j in range(i): if arr[i][j] != arr[j][i]: return 0 return 1 주석: j를 i까지만 돌리면 불필요한 중복 검사(i=1, j=2와 i=2, j=1)를 줄일 수 있습니다.

[Level.0] 수 조작하기

문제 설명: 정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다. "w" : 수에 1을 더한다."s" : 수에 1을 뺀다."d" : 수에 10을 더한다."a" : 수에 10을 뺀다.그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다. 주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요. 제한사항 2 ≤ numLog의 길이 ≤ 100,000-100,000 ≤ numLog[0] ≤..

[Level.0] 접미사 배열

문제 설명: 어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다. 문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항my_string은 알파벳 소문자로만 이루어져 있습니다.1 ≤ my_string의 길이 ≤ 100문제 해결def solution(my_string): return sorted([my_string[i:] for i in range(len(my_string))])

[Level.0] 부분 문자열 이어 붙여 문자열 만들기

문제 설명: 길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. 제한사항1 ≤ my_strings의 길이 = parts의 길이 ≤ 1001 ≤ my_strings의 원소의 길이 ≤ 100parts[i]를 [s, e]라 할 때, 다음을 만족합니다.0 ≤ s ≤ e 문제 해결def solution(my_strings, parts): answer = '' for my, (start..

[Level.0] A 강조하기

문제 설명: 문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요. 제한사항1 ≤ myString의 길이 ≤ 20myString은 알파벳으로 이루어진 문자열입니다.문제 해결def solution(myString): return myString.lower().replace('a', 'A')

[Level.0] 순서 바꾸기

문제 설명: 정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요. 제한사항2 ≤ num_list의 길이 ≤ 301 ≤ num_list의 원소 ≤ 91 ≤ n ≤ num_list의 길이문제 해결def solution(num_list, n): return num_list[n:] + num_list[:n]

[Level.0] n보다 커질 때까지 더하기

문제 설명: 정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요. 제한사항1 ≤ numbers의 길이 ≤ 1001 ≤ numbers의 원소 ≤ 1000 ≤ n 문제 해결def solution(numbers, n): answer = 0 for num in numbers: answer += num if answer > n: return answer

[Level.0] 할 일 목록

문제 설명: 오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항1 ≤ todo_list의 길이 1 ≤ 1002 ≤ todo_list의 원소의 길이 ≤ 20todo_list의 원소는 영소문자로만 이루어져 있습니다.todo_list의 원소는 모두 서로 다릅니다.finished[i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.아직 마치지 못한 일이 적어도 하나 있습니다.문제 해결def sol..

[Level.0] 배열 만들기(3)

문제 설명: 정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다. intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다. 이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요. 제한사항1 ≤ arr의 길이 ≤ 100,0001 ≤ arr의 원소 1 ≤ a1 ≤ b1 1 ≤ a2 ≤ b2 문제 해결def solution(arr, intervals): answer = [] for a, b in intervals: answe..

[Level.0] 가까운 1 찾기

문제 설명: 정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요. 단, 만약 그러한 인덱스가 없다면 -1을 반환합니다. 제한사항3 ≤ arr의 길이 ≤ 100'000arr의 원소는 전부 1 또는 0입니다.문제 해결def solution(arr, idx): try: return arr.index(1, idx) except ValueError: return -1 주석: arr.index(값, 시작 인덱스)는 배열의 시작 인덱스 번지부터 선형 탐색을 시작하여 가장 먼저 발견되는 값의 위치를 반환한다.