본문 바로가기
코딩라이브러리/파이썬

파이썬 리스트 배열 list (with 백준 5597, 10250)

by 유니네 라이브러리 2024. 5. 22.

파이썬의 리스트는 대괄호 사이에 쉼표로 구분된 값들로 표현한다.

  • 일차원 리스트
A = ['a', 'b', 'c', 'd', 'e']
B = ['가', '나', '다', '라', '마']
print(A) # ['a', 'b', 'c', 'd', 'e']
print(B) # ['가', '나', '다', '라', '마']
  • 이차원 리스트
A = [['a','b'], ['c','d'],['e','f']]
print(A)    # [['a', 'b'], ['c', 'd'], ['e', 'f']]
print(A[0]) # ['a', 'b']
print(A[0][0]) # a

 

리스트 값 저장

  • append() 내장함수 사용 : 마지막 인덱스에 추가
A = []
# 리스트 값 추가
A.append("a")
A.append("b")
A.append("c")
A.append("d")
A.append("e")
print(A) # ['a', 'b', 'c', 'd', 'e']
  • insert( idx, ‘value’) : 원하는 인덱스에 배열로 추가
A = ['a', 'b', 'c', 'd', 'e']
A.insert(2, "F")
print(A) # ['a', 'b', 'F', 'c', 'd', 'e']

 

이차원 리스트 값 저장

  • append( [’value’] ) : 마지막 인덱스에 추가
A = [['a','b'], ['c','d'],['e','f']]
A.append(['g','h'])
print(A) # [['a', 'b'], ['c', 'd'], ['e', 'f'], ['g', 'h']]
  • insert( idx, [‘value’] ) : 원하는 인덱스에 배열로 추가
A = [['a','b'], ['c','d'],['e','f']]
A.insert(1,['g','h'])
print(A) # [['a', 'b'], ['g', 'h'], ['c', 'd'], ['e', 'f']]

A[i].insert(1,'A')
print(A) # [['a', 'b'], ['g','A','h'], ['c', 'd'], ['e', 'f']]

 

리스트 값 제거

  • pop() : 값을 삭제하고 삭제한 값 반환
A = ['a', 'b', 'c', 'd', 'e']
# pop()
# 기본 인덱스 -1 (맨 뒤에 값)
print(A.pop()) # e 반환
print(A) # ['a', 'b', 'c', 'd']
# 인덱스 지정 삭제
print(A.pop(0)) # a 반환
print(A) # ['b', 'c', 'd']
  • remove() : 특정값 지정. 리스트에서 첫 번째 값 제거. 리스트 전체 동일한 값 제거는 아님
A = ['a', 'b', 'b', 'c', 'd']
# 특정값 지정. 리스트에서 첫 번째 값 제거
print(A.remove('b')) # None 삭제한 값 반환하지 않음
print(A) # ['a', 'b', 'c', 'd'] 1번째 b 만 삭제됨
  • del() : 특정 인덱스 지정 삭제. 여러 인덱스 지정 가능
A = ['a', 'b', 'c', 'd', 'e']
# 특정 인덱스 지정 삭제. 여러 인덱스 지정 가능
del A[0]
print(A) # ['b', 'c', 'd', 'e']
del A[1:3]
print(A) # ['b', 'e']

 

▷ 리스트 값 뒤집기 이전 글 참고

 

파이썬 문자열 거꾸로 해보기 (with 백준 1251 6438)

문자열 거꾸로 하는 방법은 3가지가 있다.문자열 슬라이싱으로 처리하기문자열을 리스트로 변환하고 reverse() 함수 사용하기sorted(iterable, reverse=True) 내장함수 사용하기.리스트로 반환된다#1.문자

yuneenelife.tistory.com

▷ 리스트 배열 복사 이전 글 참고

 

파이썬 리스트 배열의 얕은 복사(copy), 깊은 복사(deepcopy) 차이점

파이썬의 리스트를 복사하는 방법은 얕은 복사(copy)와 깊은 복사(deepcopy)가 있다.여기서 주의할 점이 있는데, 리스트 자체를 대입하게 되면 내가 의도한 대로 복사가 되지 않는다.내가 의도한 대

yuneenelife.tistory.com

▶ 리스트 연습 백준 문제 풀이
https://www.acmicpc.net/problem/5597

inputRow = [input() for _ in range(28)]
rtn = []
for i in range(1, 31):  
    if (inputRow.count(str(i)) == 0):
        rtn.append(i)
rtn.sort()
print(*rtn, sep="\n")

 

▶ 이차원 배열 연습 백준 문제 풀이

https://www.acmicpc.net/problem/10250

T = int(input())
tData = [input().split(" ") for _ in range(0, T)]
rtn = []
for i in range(0, T):
    H = int(tData[i][0]) #호텔의 층 수
    W = int(tData[i][1]) #각 층의 방 수
    N = int(tData[i][2]) #몇 번째 손님
    if N % H == 0: #층 꼭대기이면
        line = N // H
        floor = H
    else:
        line = (N // H) + 1 #몇 호 라인인지
        floor = N - (H * ( N // H )) #몇 층인지
        #floor = N - (H * (line - 1)) #몇 층인지
    ho = str(floor) + str(line).zfill(2)
    rtn.append(ho)
print(*rtn, sep="\n")

 

☞ 파이썬 자습서 참고 사이트

https://docs.python.org/ko/3/tutorial/introduction.html#lists

 

3. An Informal Introduction to Python

In the following examples, input and output are distinguished by the presence or absence of prompts (>>> and …): to repeat the example, you must type everything after the prompt, when the prompt ap...

docs.python.org