| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
| 31 |
Tags
- Git협업
- 앱사용자추적
- 깃 꼬였을 때
- It
- 앱에 팝업띄우기
- 위키피디아검색창
- JavaScript
- HTML
- frontend
- kotlin
- 파이썬코테함수정리
- 개발자
- 파이썬 코테준비
- Python3
- 깃 충돌시
- dev
- git방식
- 백엔드
- env사용
- 깃 충돌 해결방법
- CSS
- 프론트엔드
- 코틀린
- 깃협업
- 파이썬 코테 함수
- 앱개발기능추가
- 코테준비
- 앱개발
- 환경변수사용
- 앱사용자행동추적
Archives
- Today
- Total
zooooss
[Python3] 백준 1018번 체스판 다시 칠하기- strip(), float('inf') 본문
문제내용 요약
: 주어진 체스판에서 8x8 크기의 부분을 슬라이딩하며, 각 부분을 올바른 체스판(체스판은 두 가지 색을 번갈아 칠해야 함)으로 만들기 위해 최소한의 칸만 칠하는 방법을 찾는 문제

학습개념
1. strip() : 문자열 양옆의 공백이나 줄바꿈문자 제거하는 함수 - 때에 따라 특정한걸 제거하는 것도 가능함
2. float('inf') : 무한대를 표현하는 값
내 이전 오답코드의 문제점
문제점 1. 최소값들을 비교해 결과를 나타내기 위해, res를 빈 배열로 초기화한 후 min(countW,countB)로 배열을 계속 담고,
마지막에 print(min(res))로 전체 배열의 최소값을 추출하는 방법을 사용했었음
=> 이는 불필요한 리스트저장으로 인해 메모리 효율을 저하시켰음.
해결점 => res에 무한값을 나타내는 float('inf')로 초기화한 값으로 매번 최소값과 비교해 갱신하는 방법을 사용
문제점 2. chess에 입력받은 전체 배열을 받을 때, strip()함수를 사용하지않아 다음 행으로 넘어가는 널 문자도 한 리스트의 끝마다
받게되었음
해결점 => strip함수로 '₩0'제거해줌으로써 문자열 제대로 담고, 나중에 문제없이 처리&비교 가능
결과 코드
m,n=map(int,input().split())
chess=[list(input().strip())for _ in range(m)]
res=float('inf')
for i in range(m-7):
for j in range(n-7):
countW,countB=0,0
for x in range(8):
for y in range(8):
first = chess[i+x][j+y]
if (x+y)%2==0:
if first != 'W':
countW+=1
if first != 'B':
countB+=1
else:
if first != 'W':
countB+=1
if first != 'B':
countW+=1
res = min(res,countW,countB)
print(res)'STUDY > Algorithm' 카테고리의 다른 글
| [Python3] 프로그래머스 - k번째 수, 완주하지 못한 선수(딕셔너리, 슬라이싱) (0) | 2025.12.12 |
|---|---|
| [Python3] PCCP 준비 ver.6(조합 함수) (0) | 2025.11.11 |
| [Python3] PCCP 준비 ver.5 (0) | 2025.11.11 |
| [Python3] PCCP 준비 ver.4 (0) | 2025.11.05 |
| [Python3] PCCP 준비 ver.3 (0) | 2025.11.05 |