- 반응형 작업 보완
- 검색 아이콘 위치 수정
- 영화 미리보기 클릭 후 슬라이드 이동 버튼 클릭 금지
- 장르 버튼 중에 긴 글자 흘러넘침 수정
- 제목이 두줄 일 때 별점이랑 년도의 간격 넓힘
- 검색 완료 후 검색창 제거
- 알고리즘 기초 Part 2
브루트 포스
문제 풀이 카잉 달력
풀이
오늘도 수고했다. 힘들지만 집중하면서 하자. 화이팅. 그리고 절대 쉽게 무엇을 이룰 수 있다고는 생각하지마. 세상은 만만치 않다는 것을 default로 깔고 살아야 되.
- Promise, async, await 개념 읽기
- Fetch, axios 개념 읽기
- 알고리즘 기초 Part 2
브루트 포스
문제 풀이 사탕 게임
해설
def max_count():
row_max_cnt, col_max_cnt = 0, 0
for i in range(n):
row_cnt = 1
for j in range(n - 1):
if data[i][j] == data[i][j + 1]:
row_cnt += 1
else:
row_cnt = 1
row_max_cnt = max(row_max_cnt, row_cnt)
for i in range(n):
col_cnt = 1
for j in range(n - 1):
if data[j][i] == data[j + 1][i]:
col_cnt += 1
else:
col_cnt = 1
col_max_cnt = max(col_max_cnt, col_cnt)
return max(row_max_cnt, col_max_cnt)
n = int(input())
data = list(list(input()) for _ in range(n))
# 상, 하, 좌, 우
steps = [[-1, 0], [1, 0], [0, -1], [0, 1]]
result = 0
for x in range(n):
for y in range(n):
for k in range(4):
nx = x + steps[k][0]
ny = y + steps[k][1]
if nx < 0 or nx >= n or ny < 0 or ny >= n:
continue
if data[x][y] != data[nx][ny]:
data[x][y], data[nx][ny] = data[nx][ny], data[x][y]
result = max(result, max_count())
data[x][y], data[nx][ny] = data[nx][ny], data[x][y]
print(result)
풀이
- n^4의 시간복잡도를 가진다.(n = 50이니까 괜찮음)
- 모든 item 순회 => n^2
- 모든 행에서 가장 긴 행 찾기(열도 같음) => n^2
- 1개씩 선택해서 네 방향의 item과 교체 후 개수 count
- 네 방향 중 범위를 벗어나거나 현재 item과 똑같은 경우는 continue
- item을 교체한 후에 data의 행과 열들을 돌아다니면서 가장 긴 문자의 개수를 반환
- 모든 행 및 열의 길이 계산이 끝난 다음에는 item을 제자리로 교체
출처
오늘도 수고했어. 공부할 때 만큼은 집중해서 해야해. 다른 때는 몰라도 공부할 때 만이라도 집중해서 해야해. 다음에 뭘 하든간에 지금 공부하는 행위 만큼 중요한 순간에도 집중을 하지 않으면 내 인생은 망해. 미래야 그렇다 쳐도 지금부터 집중해야해.
- 공고 정리 및 이력서 작성