티스토리 뷰

Python의 List 자료형은 순서가 있는 자료형으로 인덱싱과 슬라이싱이 가능하여 원하는 위치에 존재하는 데이터를 쉽게 추출할 수 있다는 장점이 있습니다. 이번 글에서 List 자료형의 인덱싱을 활용하는 문제들을 풀어 보겠습니다.

 

1. 잘라서 배열로 저장하기

https://school.programmers.co.kr/learn/courses/30/lessons/120913

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

입력된 문자열을 앞에서만큼 특정 길이만큼 잘라서 저장한 배열을 반환하는 문제

 

  • Test Case 1 : string1 = "abcdef123"    n = 3

          "abcdef123"을 3개의 문자 씩 잘라서 반환시키면 ["abc", "def", "123"]으로 잘라서 반환시키기

           abcdef123 => abc을 잘라서 다른 배열에 저장

                     => def123에서 def을 잘라서 저장

                     => 123을 저장

 

Solution)

인덱싱을 활용해서 입력된 n칸만큼 문자를 자른 다음, 잘라진 배열부터 다시 인덱싱 하기

def solution(my_str, n):
    answer = []
    tmp_string = ''

    while len(my_str) != 0:
        tmp_string = my_str[:n]
        answer.append(tmp_string)
        my_str = my_str[n:]
    return answer

 

2.  2차원으로 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/120842

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

1차원으로 입력된 배열을 n개의 원소만큼 씩 묶어서 2차원으로 만들기

  • Test case 1: num_list = [1, 2, 3, 4, 5, 6, 7, 8], n = 2 이면 [[1, 2], [3, 4], [5, 6], [7, 8]]
  • Test case 2: num_list = [100, 95, 2, 4, 5, 6, 18, 33, 948], n = 3이면 [[100, 95, 2], [4, 5, 6], [18, 33, 948]]

Solution)

2차원 배열로 만드는 방법은 n의 배 수개가 num_list의 길이가 되도록 만들기

입력된 배열의 길이가 0이 되기 전까지 계속 반복

-> 잘라진 요소들은 기존 배열에서 삭제시키기

-> 기존 배열에 아무런 요소가 남아있지 않으면 반복문을 빠져나오기

def solution(num_list, n):
    answer = []
    
    while len(num_list)!=0:
        for idx in range(n):
            if not num_list:
                continue
            answer.append(num_list[:n])
            del num_list[:n]
    return answer
TAG more
글 보관함
최근에 올라온 글