1. 마지막 두 원소
- answer = num_list[:] 리스트 복사
- append(): 리스트이름.append(데이터값)을 쓰면 리스트에 값이 추가
def solution(num_list):
answer = num_list[:]
if num_list[-1] > num_list[-2]:
answer.append(num_list[-1] - num_list[-2])
else:
answer.append(num_list[-1]*2)
return answer
2. 수 조작하기 1
- answer = n: 규칙에 따라 변경된 n의 최종값이 answer
- for i in control: 문자열 길이만큼 for문 반복 & control에 i에 해당하는 문자가 있으면 TRUE 없으면 FALSE
def solution(n, control):
answer = n
for i in control:
if i == "w":
answer += 1
elif i == "s":
answer -= 1
elif i == "d":
answer += 10
elif i == "a":
answer -= 10
return answer
3. 수 조작하기 2
- numLog의 첫 번째 값 인덱스 0이기 때문에, 그 다음 인덱스인 1부터 for문 돌리기
- 입출력 예
- numLog: [0, 1, 0, 10, 0, 1, 0, 10, 0, -1, -2, -1]
- result: "wsdawsdassw"
- numLog[i] - numLog[i-1] == 1
- i = 1이라면
- numLog[1] - numLog[0] = 1 - 0 = 1
- 이는 numLog[0] = 0에서 +1이 되었다는 것이기에 'w'
- numLog[i-1] - numLog[i] == 1
- i = 2라면
- numLog[1] - numLog[2] = 1 - 0 = 1
- 이는 numLog[1] = 1에서 -1이 되었다는 것이게 's'
- 같은 원리로 'd', 'a'
def solution(numLog):
answer = ''
for i in range(1, len(numLog)):
if numLog[i] - numLog[i-1] == 1:
answer += 'w'
elif numLog[i-1] - numLog[i] == 1:
answer += 's'
elif numLog[i] - numLog[i-1] == 10:
answer += 'd'
elif numLog[i-1] - numLog[i] == 10:
answer += 'a'
return answer
4. 수열과 구간 쿼리 2
- s <= i < = e & arr[i] > k인 arr[i] 찾기
- for i in range(s, e+1): i는 s부터 e까지 반복
- if arr[i] > k: arr[i]가 k보다 크면
- candidates.append(arr[i]): candidates 리스트에 arr[i] 저장
- 가장 작은 arr[i] 찾기
- answer.append(min(candidates)): candidates 리스트에서 가장 작은 것을 answer 리스트에 저장
- answer.append(-1): 특정 쿼리에 답이 존재하지 않으면 -1 저장
def solution(arr, queries):
answer = []
for s, e, k in queries:
candidates = []
for i in range(s, e+1):
if arr[i] > k:
candidates.append(arr[i])
if candidates:
answer.append(min(candidates))
else:
answer.append(-1)
return answer
5. 수열과 구간 쿼리 3
- arr[i], arr[j] = arr[j], arr[i]: a[i] ↔ a[j] 서로 교환
- answer = arr: arr 리스트에 변경된 값을 answer에 저장
def solution(arr, queries):
answer = []
for i, j in queries:
arr[i], arr[j] = arr[j], arr[i]
answer = arr
return answer
참고 사이트: https://programmers.co.kr/
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형