Coding Test/초보자를 위한 파이썬 300제

[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(181~190)_12.20

Klay_J 2022. 12. 20. 21:07

안녕하세요. Harry입니다.

 

현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.

모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.

 

초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/

https://wikidocs.net/book/922

[학습목표]

1. 각 문제별 요구하는 역량(출제의도)이 무엇인지 파악할 수 있다.

2. 각 문제별 요구하는 기술 및 기능을 활용하여 문제를 해결할 수 있다.

 

181 ~ 190

181

아래 표에서 하나의 행을 하나의 리스트로, 총 3개의 리스트를 갖는 이차원 리스트 apart를 정의하라.

- 요구역량 : 표의 행 단위로 리스트 내 리스트를 넣어 출력할 수 있는가?


101호 102호
201호 202호
301호 302호
 정답확인
apart = [ ["101호", "102호"], ["201호", "202호"], ["301호", "302호"] ]

182

아래 표에서 하나의 열을 하나의 리스트로, 총 2개의 리스트를 갖는 이차원 리스트 stock을 정의하라.

- 요구역량 : 표의 열 단위로 리스트 내 리스트를 넣어 출력할 수 있는가?

 

시가 종가
100 80
200 210
300 330
 정답확인
stock = [ ["시가", 100, 200, 300], ["종가", 80, 210, 330] ]

183

아래 표를 stock 이름의 딕셔너리로 표현하라.시가를 key로 저장하고, 나머지 같은 열의 데이터를 리스트로 저장해서 value로 저장한다. 종가 역시 key로 저장하고 나머지 같은 열의 데이터를 리스트로 저장해서 value로 저장한다. 

- 요구역량 : 표의 열을 딕셔너리로 저장할 수 있는가?

시가 종가
100 80
200 210
300 330
 정답확인
stock = {시가:[100,200,300], 종가:[80,210,330] }

184

아래 표를 stock 이라는 이름의 딕셔너리로 표현하라. 날짜를 key로 저장하고, 나머지 같은 행의 데이터를 리스트로 저장해서 value로 저장한다. 첫 열이 날짜이다.

- 요구역량 : 표의 열을 딕셔너리로 저장할 수 있는가?


10/10 80 110 70 90
10/11 210 230 190 200
 정답확인
stock = {"10/10": [80, 110, 70, 90], "10/11": [210, 230, 190, 200] }

185

리스트에 저장된 데이터를 아래와 같이 출력하라.

- 요구역량 : for문을 2번 연속으로 활용하여 리스트 내 리스트를 일일이 출력할 수 있는가?

하나하나 언패킹해서 프린트했는데, for문을 두번쓰면 되는걸로,,배웠습니다.

apart = [ [101, 102], [201, 202], [301, 302] ]
101 호
102 호
201 호
202 호
301 호
302 호
 정답확인
apart = [ [101, 102], [201, 202], [301, 302] ]
a,b,c = apart
print(a[0],"호")
print(a[1],"호")
print(b[0],"호")
print(b[1],"호")
print(c[0],"호")
print(c[1],"호")

#답지
for row in apart:
    for col in row:
        print(col, "호")
 

 

186

리스트에 저장된 데이터를 아래와 같이 출력하라.

- 요구역량 : for문을 2번 연속으로 활용하여 리스트를 역순으로 출력할 수 있는가?

apart = [ [101, 102], [201, 202], [301, 302] ]
301 호
302 호
201 호
202 호
101 호
102 호
 정답확인
apart = [ [101, 102], [201, 202], [301, 302] ]
for i in apart[::-1]:
    for c in i:
        print(c,"호")

187

리스트에 저장된 데이터를 아래와 같이 출력하라.

- 요구역량 : for문을 2번 연속으로 활용하여 리스트 내 리스트를 역순으로 출력할 수 있는가?

apart = [ [101, 102], [201, 202], [301, 302] ]
302 호
301 호
202 호
201 호
102 호
101 호
 정답확인
apart = [ [101, 102], [201, 202], [301, 302] ]
for i in apart[::-1]:
    for c in i[::-1]:
        print(c,"호")

188

리스트에 저장된 데이터를 아래와 같이 출력하라.

- 요구역량 : for문을 2번 연속으로 활용하여 리스트 내 리스트의 요소를 일일이 출력할 때마다 다른 문자열도 반복적으로 출력할 수 있는가?

apart = [ [101, 102], [201, 202], [301, 302] ]
101 호
-----
102 호
-----
201 호
-----
202 호
-----
301 호
-----
302 호
-----
 정답확인
apart = [ [101, 102], [201, 202], [301, 302] ]
for i in apart:
    for c in i:
        print(c,"호")
        print("-----")

189

리스트에 저장된 데이터를 아래와 같이 출력하라.

 - 요구역량 : for for문이 반복 , 어느 위치의 명령문이 어떤 주기로 실행되는지 알고 원하는 주기로 출력할 있는가?

저는 정수형을 문자형으로 바꾸고, 거기서 인덱싱하고 if문써서,,, 복잡하게했는데, 그냥 print("-"*5)문을 첫번째 for문에서 실행하도록만 빼면 되는,,쉽게 해결되는 그런 문제 였습니다.

for문이 리스트의 요소가 변수에 차례대로 대입되는 반복문이라는 개념을 이해하고, 원리에 입각하여 print 위치를 옮기는 판단을 했어야했는데, 아직 부족한 합니다.

apart = [ [101, 102], [201, 202], [301, 302] ]
101 호
102 호
-----
201 호
202 호
-----
301 호
302 호
-----
 정답확인
apart = [ [101, 102], [201, 202], [301, 302] ]
for i in apart:
    for c in i:
        print(c,"호")
        if str(c)[2] == '2':
            print("-"*5)
            
#답지
apart = [ [101, 102], [201, 202], [301, 302] ]
for row in apart:
    for col in row:
        print(col, "호")
    print("-----")

190

리스트에 저장된 데이터를 아래와 같이 출력하라.

 - 요구역량 : for문 내 for문이 반복 될 때, 어느 위치의 명령문이 어떤 주기로 실행되는지 알고 원하는 주기로 출력할 수 있는가?

앞 문제를 교훈 삼아 쉽게 풀었습니다!

apart = [ [101, 102], [201, 202], [301, 302] ]
101 호
102 호
201 호
202 호
301 호
302 호
-----
 정답확인
apart = [ [101, 102], [201, 202], [301, 302] ]
for i in apart:
    for c in i:
        print(c,"호")
print("-"*5)

감사합니다.