[프로그래머스] LV.0 배열 뒤집기

seho·2023년 2월 7일
0

codetest

목록 보기
1/17

문제

정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. 
num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

- 1 ≤ num_list의 길이 ≤ 1,000
- 0 ≤ num_list의 원소 ≤ 1,000

입출력 예시

num_list가 [1, 2, 3, 4, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 4, 3, 2, 1]을 return합니다.

풀이

변수로 정수배열이 주어지는데 이 정수배열의 순서를 뒤집어서 return해야 한다.
아래 두 가지 방법으로 풀어봤다.

for with reversed() 함수

def solution(num_list):
    answer = []
    
    for num in reversed(num_list):
        answer.append(num)
        
    return answer
  • 먼저 reversed() 함수를 사용하여 간단하게 코드를 짜는 방법이다.
  • reversed() 함수는 리스트를 거꾸로 반환해주는 함수인데 for 문과 함께 사용하면
    거꾸로 모든 변수를 사용할 수 있다.
  • 거꾸로 반환 받은 변수들을 미리 정의해둔 비어있는 answer 리스트 변수에
    append() 함수로 차곡차곡 저장해주면 끝.

for with range() 함수

def solution(num_list):
    answer = []
    nl_len = len(num_list)
    
    for i in range(nl_len-1, -1, -1):
        print(i)
        answer.append(num_list[i])
        
    return answer
  • for 와 range를 사용할 때 입력받은 리스트의 크기를 먼저 확인하기 위해 len() 함수로 리스트의 크기를 먼저 확인한다.
  • range함수를 이용해 거꾸로 값을 반환받기 위해 range() 함수의 세 번째 매개변수를 -1씩 감소하게 지정해준다. 첫 번째 매개변수로는 거꾸로 시작될 정수가 들어가야하는데 먼저 확인하여 변수로 저장해둔 nl_len에서 -1을 해주어 입력받은 리스트의 마지막 변수를 지정할 수 있게 된다. 두 번째 매개변수는 끝나는 지점인데 여기서는 리스트의 첫 번째 변수가 저장된 리스트의 [0] 을 사용해야하는데 여기서 0을 지정하는게 아니라 -1 을 지정해야 [0]을 출력할 수 있다.

오답노트

  • 별 다른 어려움은 없었지만 range를 감소시킬 때 두 번째 매개변수가 왜 0이 아니라 -1인지 헷갈린다
profile
develop my'self and sw

0개의 댓글