
오늘은 제가 예전에 공부를 하면서 많이 풀었었던 코드업 문제중에 한개를 한번 포스팅 해보려 합니다!
코드업은 정말 파이썬 기본을 배우신 분들이 문제풀어보길 원하신다면 정말 강력추천드리는 웹사이트 입니다.
CodeUp
☆ 파이썬 다운로드 : 파이썬3 ☆ 무료 C언어 IDE : Code::blocks DEV C++ ☆ 추천 온라인 IDE : C C++11 Python3 Java ☆ 채점 가능 언어 : C, C++, JAVA, Python 3.5 ★ C++로 제출시 void main()을 사용하면
codeup.kr


문제와 입력 예시 입니다. 항상 코딩 문제를 해결하는데는 문제를 정말정말 꼼꼼히 읽어봐야 하더라구요!
위 말을 요약하자면, 행과 열이 19x19인 바둑판에서 흰돌을 몇개를 놓을지를 고르고, (x,y) 좌표를 입력하면 그 좌표에만 흰돌(숫자1)이 놓여지고, 그 외의 좌표에는 검은돌 (숫자0)이 놓아진다는 것이다.
정답 코드는 아래와 같다.
d = []
for i in range(19):
d.append([])
for j in range(19):
d[i].append(0)
n = int(input("돌 숫자: "))
for i in range(n):
x, y = map(int,input().split())
d[x][y] = 1
for i in range (0,19):
for j in range (0,19):
print(d[i][j], end =' ')
print()
이 문제는 List Comprehension 관련 문제라고 하는데, 보통 바둑판을 만든다던지 2차원으로 된 데이터 배열을 만들 때에는 좌표 문제와 같이 매개변수를 두개 만들어야 한다면 리스트 안에 리스트를 넣어 테이블을 만든 다음 그것을 이중 반복문을 통해 출력을 한다.
한번 코드 하나하나 분석해보도록 하자.
d = []
for i in range(19):
d.append([])
for j in range(19):
d[i].append(0)
일단 d라고 하는 빈 리스트를 만든다.
리스트 d에 작은 리스트 19개를 넣는다. 즉 현재 큰 리스트 (d)안에 작은 비어있는 리스트가 19개가 들어가있다.
또 그 작은 리스트 안에 0을 모두 넣는다.
즉, d라는 리스트 안에는 현재 0이 19개가 들어있는 리스트가 19개 들어있는 것이다.
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] 이 19개가 들어있는 것이다.
n = int(input("돌 숫자: "))
for i in range(n):
x, y = map(int,input().split())
d[x][y] = 1
흰돌을 놓을 갯수를 n 으로 인풋
흰돌을 놓을 좌표를 map으로 인풋 (당연히 흰돌의 갯수만큼 반복)
그 다음, 위에만든 d리스트에서 x,y 좌표가 찍힌 곳은 1로 만든다.
d[x][y] 부분이 잘 이해안될 수 있는데, 예를 들어서 d[1][2]를 입력을 했다고 하면
d에 있는 리스트중에서 두번째 리스트가 선택이 되는것이고, 그 두번째 리스트안의 세번째를 선택하는 것이다.
(* 파이썬은 숫자를 0부터 센다)
이제 선택된 (x,y) 좌표는 흰돌을 놓는 곳이고 1로 표시 될 것이다.
for i in range (0,19):
for j in range (0,19):
print(d[i][j], end =' ')
print()
그 다음 만들어 놓은 바둑판을 이중 반복문을 통해 출력해주면 끝.
'Programming > Python' 카테고리의 다른 글
컴퓨터와 가위바위보 하기 (for in 반복문 이용) - 파이썬 (Python) 문법 (4) | 2022.05.11 |
---|---|
코드업 6097 설탕막대기 두기 - 파이썬 (Python) (2) | 2022.05.03 |
JSON (제이슨) 이란 무엇인가? 파이썬 기본 문법 (0) | 2022.04.27 |
파이썬 반복문 이용한 피라미드 만들기 02 (Python for in) (2) | 2022.04.25 |
파이썬 반복문 이용한 피라미드 만들기 01 (Python for in) (18) | 2022.04.23 |
댓글