✅ 일차원 & 이차원 리스트 다루기
✅ append(), insert()로 값 추가
✅ pop(), remove(), del로 값 삭제
✅ 백준 문제(5597, 10250)로 실전 연습
📌 파이썬 리스트 기본 사용법
🔹 일차원 리스트
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, insert)
🔹 append() : 리스트 마지막에 추가
A = []
A.append("a")
A.append("b")
A.append("c")
print(A) # ['a', 'b', 'c']
🔹 insert(index, value) : 원하는 위치에 추가
A = ['a', 'b', 'c', 'd']
A.insert(2, "F")
print(A) # ['a', 'b', 'F', 'c', 'd']
🔹 이차원 리스트에 값 추가
A = [['a', 'b'], ['c', 'd']]
A.append(['e', 'f']) # 마지막에 추가
print(A) # [['a', 'b'], ['c', 'd'], ['e', 'f']]
A.insert(1, ['g', 'h']) # 특정 위치(1)에 추가
print(A) # [['a', 'b'], ['g', 'h'], ['c', 'd'], ['e', 'f']]
A[1].insert(1, 'X') # 특정 이차원 리스트 내부에 삽입
print(A) # [['a', 'b'], ['g', 'X', 'h'], ['c', 'd'], ['e', 'f']]
📌 리스트 값 삭제 (pop, remove, del)
🔹 pop(): 특정 인덱스의 값을 제거하고 반환
A = ['a', 'b', 'c', 'd']
print(A.pop()) # 'd' 반환
print(A) # ['a', 'b', 'c']
print(A.pop(0)) # 'a' 반환
print(A) # ['b', 'c']
🔹 remove(value): 특정 값을 찾아 삭제 (첫 번째 값만 삭제)
A = ['a', 'b', 'b', 'c']
A.remove('b')
print(A) # ['a', 'b', 'c']
🔹 del: 특정 인덱스 또는 범위 삭제
A = ['a', 'b', 'c', 'd', 'e']
del A[0] # 첫 번째 요소 삭제
print(A) # ['b', 'c', 'd', 'e']
del A[1:3] # 1번 ~ 2번 인덱스 삭제
print(A) # ['b', 'e']
📌 리스트 연습 문제 풀이 (백준 5597, 10250)
#입력값 받기
inputRow = [input() for _ in range(28)]
#출력 변수 선언
rtn = []
#문제풀이 (모든 출석번호(1~30)에서 제출한 번호 제거)
for i in range(1, 31):
if (inputRow.count(str(i)) == 0):
rtn.append(i)
rtn.sort()
#결과 출력
print(*rtn, sep="\n")
✅ 설명
✔ inputRow 리스트에 입력된 출석번호 저장
✔ rtn 리스트에 제출하지 않은 번호 저장
✔ sort()로 정렬 후 출력
#입력값 받기
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")
✅ 설명
✔ floor: 손님이 묵을 층 계산 (N % H로 계산)
✔ line: 손님이 묵을 방 라인 ((N // H) + 1로 계산)
✔ zfill(2) 포맷을 사용하여 두 자리 숫자로 맞춤 (01, 02, ...)
✅ 마무리 정리
✅ 리스트 추가 → append(), insert()
✅ 리스트 삭제 → pop(), remove(), del
✅ 1차원 & 2차원 리스트 활용법
✅ 실전 문제(백준 5597, 10250)로 연습했다.
'코딩라이브러리 > 파이썬' 카테고리의 다른 글
파이썬 for while 조건문 (with 백준 2446, 2522) (2) | 2024.05.23 |
---|---|
파이썬 리스트 배열의 얕은 복사(copy), 깊은 복사(deepcopy) 차이점 (0) | 2024.05.22 |
파이썬 if문 조건 여러개 다중 처리 배열 비교 (with 백준 1330) (0) | 2024.05.21 |
파이썬 문자열 formatter string (with 백준 2739) (0) | 2024.05.20 |
파이썬 문자열 거꾸로 해보기 (with 백준 1251 6438) (0) | 2024.05.19 |