강의 내용 BOJ3085 질문 있습니다
변화만 생기는 곳만 체크한다고 하셨는데, 예로 들어 한 행의 두 원소를 바꾸면 그 두 원소의 열과 그 행을 살펴보면 된다고 하셨는데,
def get_best(y, x):
global N, matrix
best = 0
# columns
bef = '-'
value = 0
for j in range(N):
if bef == matrix[y][j]:
value += 1
else:
value = 1
bef = matrix[y][j]
best = max(best, value)
# rows
bef = '-'
value = 0
for i in range(N):
if bef == matrix[i][x]:
value += 1
else:
value = 1
bef = matrix[i][x]
best = max(best, value)
return best
왜 바꾼 원소 기준으로 그 원소 위치의 하나의 행과 열만 보는걸로 코드를 짜셨나요?
설명과 코드가 달라서 약간 이해가 안 갑니다 ㅜ
Câu trả lời 2
0
안녕하세요 김민섭님!
강의 설명에서 변화되는 곳을 체크하려면 두 원소의 열과 행을 살펴보면 된다고 말씀드렸습니다.
하지만 코드는 바꾼 원소 기준으로 하나의 행과 열만 체크하는 방식으로 구현하였는데요.
그 이유는 전체 보드를 탐색하며 각 원소의 4방향을 탐색하기 때문입니다.
예를 들어 'CP'에서 'PC'로 전환되는 경우는, 원소 C에서 4방향 탐색을하여 P와 전환된 경우와 원소 P에서 4방향 탐색을하여 C와 전환된 경우 2가지 케이스가 있습니다.
두 케이스가 진행되면서 결국 강의에서 설명드린 두 원소의 열과 행이 모두 체크됩니다.
때문에 보드 전체를 탐색하는 과정에서 전환되는 원소를 기준으로 하나의 행과 열만 체크하면 되는 원리입니다.
colums, rows 주석은 말씀하신대로 해석하면 주석을 바꾸는 것이 맞는데요.
또 다르게 해석하면 colum 여러 개(colums)를 탐색하여 하나의 row를 본다는 의미로도 볼 수 있기 때문에, 이 부분은 고민 후 좀 더 적절한 표현으로 반영하겠습니다.
제 강의가 도움이 되셨다니, 뿌듯하네요.
남은 강의도 응원하겠습니다.
또 궁금하신 점 있으시면 언제든 질문 부탁드립니다.
감사합니다. :)
0
추가로 주석에 column된 부분은 열을 확인하는거인데, 코드 상에서는 x축을 쭉 흝으면서 같은 값으로 이루어진 연속된 길이를 구하고 있습니다. 이 부분 주석은 row로 바꿔야하는거 아닌가요?? 답변 기다리겠습니다 큰 도움 되고 있습니다 ㅎ
Iterable 관련 설명 중 의문점
1
73
1
DP 알고리즘 index 0 이유?
0
80
2
백준에서 queue.PriorityQueue() 사용 시 런타임에러가 납니다.
0
78
2
(시간 초과) BOJ 1342 관련하여 질문이 있습니다
1
80
2
BFS, DFS
0
105
2
이중연결리스트에 관한 수업 내용도 있을까요?
0
98
1
영상에서 설명이 잘못됐고 자막이 맞는 내용이라고 자막에 표기
0
113
2
최대값 int(1e6, 1e7, 1e8) 기준
0
273
2
섹션 3 BOJ 1342 //= 연산자 관련
0
88
3
라이브러리 사용
0
118
2
2번 구현 방법 질문 있습니다.
0
167
1
브루트 포스 풀이
0
144
2
다익스트라 음수 간선
0
160
1
종료 조건
0
118
2
BOJ 1342 메모리초과 관련
0
123
2
진짜 엄청나네요. 이 가격에 새로운 컨텐츠 추가라니
0
215
1
섹션3 브루트포스 알고리즘 1342 풀이1 질문
0
152
2
boj 3020
0
127
1
강의 내용 중 백트래킹 존재 여부
0
156
1
제가 공부하는 방법이 괜찮은지 궁금합니다
1
261
2
DP 11053관련 질문있습니다.
0
122
1
17609 투포인터 문제를 재귀로 풀 경우가 궁금합니다!
0
138
3
3020번 풀이 코드관련 질문있어요
0
172
2
재귀 관련 문제 관찰할 때 질문
0
198
1

