Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- codingtest
- cos pro 1급
- 코테
- 안드로이드
- 동적계획법
- C++
- Algorithm
- vuejs
- 백준
- django
- cos
- 파이썬
- 개발
- 코딩테스트
- BAEKJOON
- Python
- android
- 안드로이드스튜디오
- 알고리즘
- 분할정복
- issue
- 동적계획법과최단거리역추적
- Flutter
- 코드품앗이
- DFS
- DART
- AndroidStudio
- Vue
- cos pro
- DFS와BFS
Archives
- Today
- Total
Development Artist
[COS Pro 1급, Python] 3차 3번 : 비숍으로부터 도망쳐 본문
728x90
반응형
문제 유형
코딩
난이도
hard
Note
1. bfs문제 유형. '순회'라는 개념. dxy : 비숍이 갈 수 있는 좌표를 설정.
Code
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
# 3차 3번
def solution(bishops):
answer = 0
dxy = [[1,1],[1,-1],[-1,1],[-1,-1]]
field = [[0] * 8 for i in range(8)]
for bis in bishops:
x = ord(bis[0])-65
y = int(bis[1])-1
field[x][y] = 1
for dx, dy in dxy:
nx , ny = x, y
while True:
nx += dx
ny += dy
if nx >=8 or nx < 0 or ny >=8 or ny <0:
break
if field[nx][ny] == 0:
field[nx][ny] = 1
for i in range(8):
for j in range(8):
if not field[i][j]:
answer += 1
return answer
bishops1 = ["D5"]
ret1 = solution(bishops1)
print("solution 함수의 반환 값은", ret1, "입니다.")
bishops2 = ["D5", "E8", "G2"]
ret2 = solution(bishops2)
print("solution 함수의 반환 값은", ret2, "입니다.")
※ 가끔 코드 중 print(~)가 있습니다. 정리 못한 점 죄송합니다.
728x90
반응형
'Algorithm > COS' 카테고리의 다른 글
[COS Pro 1급, Python] 3차 5번 : 전광판 문구 출력 (0) | 2022.02.25 |
---|---|
[COS Pro 1급, Python] 3차 4번 : 중복 문자열 이어붙이기 (0) | 2022.02.25 |
[COS Pro 1급, Python] 3차 2번 : 팰린드롬 문제 (0) | 2022.02.25 |
[COS Pro 1급, Python] 3차 1번 : 배열을 회전시켜보세요 (0) | 2022.02.25 |
[COS Pro 1급, Python] 2차 10번 : 0들을 0으로 만들기 (0) | 2022.02.25 |
Comments