본문 바로가기

Algorithm

(51)
[Python] [코딩 기초 트레이닝] / 왼쪽 오른쪽 [문제 설명]문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return하도록 solution 함수를 완성해주세요."l"이나 "r"이 없다면 빈 리스트를 return합니다.[제한사항]1. 1 ≤ str_list의 길이 ≤ 202. str_list는 "u", "d", "l", "r" 네 개의 문자열로 이루어져 있습니다. def solution(str_list): answer = [] ..
[Python] [코딩 기초 트레이닝] / 배열 조각하기 [문제 설명]정수 배열 arr와 query가 주어집니다.query를 순회하면서 다음 작업을 반복합니다.짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다.홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다.위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.[제한사항]1. 5 ≤ arr의 길이 ≤ 100,0002. 0 ≤ arr의 원소 ≤ 1003. 1 ≤ query의 길이  def solution(arr, query): answer = [] return answer   [A] (내가 쓴 답)def solu..
[Python] [코딩 기초 트레이닝] / qr code [문제 설명]두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을return 하는 solution 함수를 작성해 주세요.[제한사항]1. 0 ≤ r  def solution(q, r, code): answer = '' return answer  [A] (내가 쓴 답)def solution(q, r, code): new_idx = [] answer = "" for idx in range(len(code)) : if idx % q == r : new_idx.append(idx) for i in new_idx : tmp = code..
[Python] [코딩 기초 트레이닝] / 배열 만들기 4 [Q]1. 정수 배열 [arr] 로 [stk] 생성2. i = 03. i가 arr의 길이보다 작으면 다음 작업을 반복   - 만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다.   - stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다.   - stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다.def solution(arr): stk = [] return stk  - while i - if not stk :- stk[-1] = arr[i]- if stk[-1] - stk[-1] =+ arr[i] , i = +1- if ..
[Python] [코딩 기초 트레이닝] / 주사위 게임 3 [Q]1. 4p -> 1111 * p2. 3p + q -> (10 * p + q)^23. 2p + 2q -> (p+q) * |p-q|4. 2p + q + r -> q * r5. p + q + r + s -> min(p, q, r, s)6. 1 def solution(a, b, c, d): answer = 0 return answer  - len(set([a, b, c, d])) 활용  [A] (내가 쓴 답)def solution(a, b, c, d) : answer = 0 dice = [a, b, c, d] tmp = list(set(dice)) if len(tmp) == 4 : answer = min(tmp) elif len..
[Python] [코딩 기초 트레이닝] / 배열 만들기 2 [Q]1. l 2. x 가 "0"과 "5"로만 이루어진 경우 오름차순 배열로 return3. 14. x가 없다면 -1 returndef solution(l, r): answer = [] return answer  - i in range(l, r)- set(str(i)) in ['0', '5']  [A] (내가 쓴 답)def solution(l, r): answer = [] for i in range(l, r+1) : if not set(str(i)) - set(['0', '5']) : answer.append(i) return answer if answer else [-1] * return answer if answer else [-1] 이전 코..
[Python] [코딩 기초 트레이닝] / 문자열 겹쳐쓰기 [Q]1. input 은 my_string, overwrite_string, s2. my_string의 인덱스 s 부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열 구하기3. 0 def solution(my_string, overwrite_string, s): answer = '' return answer  - my_string[:s] + overwrite_string[:len(overwrite_string)]  [A] (내가 쓴 답)def solution(my_string, overwrite_string, s): if len(my_string) > s + len(overwrite_string) : answer = m..
[Python] [코딩 기초 트레이닝] / 코드 처리하기 [Q]1. 문자열 [code]를 읽어옴 2. mode = 1 or 0 에 따라 짝수 문자열이나 홀수 문자열을 가져와야함3. [code]에 1이 있을때마다 mode가 변경됨4. 시작하는 mode는 0def solution(code): answer = '' return answer  - 먼저 mode를 0에 고정시키고, 비어있는 문자열 [ret] 만들어야 함- mode가 0인지 1인지 확인하고 경우의 수를 따져줘야함- [ret]이 빈 문자열 그대로라면 'EMPTY'를 return 해야함  [A] (내가 쓴 답)def solution(code): mode = 0 ret = '' for i in range(len(code)) : if mode ..