-
코드업 기초 100제 - 1096 : [기초-2차원배열] 바둑판에 흰 돌 놓기알고리즘 2019. 12. 2. 15:30
1. 문제
- 언어 : python3
- 유형 : 전형적인 이중 for문 문제
기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다.
오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가
"바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다.
바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때,
n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자.입력
바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다.
둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다.
n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 같은 좌표는 입력되지 않는다.출력
흰 돌이 올려진 바둑판의 상황을 출력한다.
흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다.2. 풀이 결과(소스코드)
n = input("올려놓을 바둑돌의 개수 입력") n = int(n) # 0으로 채워진 배열 미리 생성 goMap = [[0 for col in range(20)] for row in range(20)] # 바둑돌 개수(n) 만큼 좌표값을 입력 받고, 해당 좌표는 돌이 올려진 상태이므로 값을 1로 할당 for i in range(n): x, y = input("바둑돌의 위치 입력 x, y 좌표").split() goMap[int(x)][int(y)] = 1 # 바둑돌이 표시된 최종 배열을 이중 for 문으로 출력 for i in range(1, 20): for j in range(1, 20): print(goMap[i][j], end=' ') print('')
3. 회고
이 문제부터 난이도가 급 상승해서 조금씩 헷갈리기 시작했다.
이중 for문을 활용한다는 건 바로 알아챘는데 x,y 좌표 값에 1을 할당해서 바둑돌을 채우는 부분을 빠르게 생각해내지 못했다.
이중 for문 관련 문제를 더 연습해야겠다.
'알고리즘' 카테고리의 다른 글
프로그래머스 Lv.1 - 파보나치수 with 파이썬 (0) 2020.01.13 프로그래머스Lv.1 - 소수 찾기 (0) 2019.12.23 코드업 기초 100제 - 1098 : [기초-2차원배열] 설탕과자 뽑기 (0) 2019.12.03 코드업 기초 알고리즘 100제 완주-파이썬 (0) 2019.11.17 CodeUP 파이썬 기초 알고리즘 100제 : 1~15번 (0) 2019.10.07