백준 10026번 - 적록색약

백준 10026번 바로가기 나의 풀이 # 입력 import sys from collections import deque sys.setrecursionlimit(10**6) n = int(sys.stdin.readline().strip()) maps = [[] * n for _ in range(n)] for i in range(n): maps[i] = list(sys.stdin.readline().strip()) count = 0 visited = [[False] * n for _ in range(n)] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] # 처리 def bfs(i, j, color): queue = deque() queue.append([i, j]) visited[i][j] = True while queue: i, j = queue.popleft() for k in range(4): x = i + dx[k] y = j + dy[k] if not 0 <= x < n or not 0 <= y < n or visited[x][y]: continue if color == maps[x][y]: visited[x][y] = True queue.append([x, y]) return for i in range(n): for j in range(n): if visited[i][j] == False: bfs(i, j, maps[i][j]) count += 1 print(count, end=" ") def bfs_blind(i, j, color): queue = deque() queue.append([i, j]) visited[i][j] = True while queue: i, j = queue.popleft() for k in range(4): x = i + dx[k] y = j + dy[k] if not 0 <= x < n or not 0 <= y < n or visited[x][y]: continue if color == "B" and maps[x][y] == "B": visited[x][y] = True queue.append([x, y]) elif color != "B" and maps[x][y] != "B": visited[x][y] = True queue.append([x, y]) return count = 0 visited = [[False] * n for _ in range(n)] for i in range(n): for j in range(n): if visited[i][j] == False: bfs_blind(i, j, maps[i][j]) count += 1 print(count) CODE REVIEW graph을 이용한 문제. 백준 4963번에서는 0,1 두 개만 고려해서 구역을 나누면 되었다면, 10026번에서는 RGB 3종류를 고려해서 구역을 나누어야해서 고려할 부분이 많았다. 적록색맹의 경우 구역의 갯수를 구하는 과정에서 미리 RG를 K와 같이 처리해주고 문제를 풀지, 아니면 탐색 과정에서 두 경우를 고려해줄지 고민하다가 탐색 과정에서 처리하는 방식을 택했다.

2023-6-17 · 2 min · 294 words · Junha

엘리멘탈

간만에 디즈니다운 디즈니 영화가 개봉되었다. 6월 14일에 개봉되지마자 영화관 가서 보게 되었는데, 전개가 어느정도 예측되지만 감동적이고 뭉클하게 만드는 스토리였다. 불과 물, 나무, 구름의 각 원소별 특징을 활용한 유머와 재치들이 재미있었다. 한국어 번역도 잘 되어있었는데, 물의 특징을 살려서 ‘새파랗게 질렸네’라거나 불의 성격을 살려서 ‘화끈하네 (you’re hot!)‘라는 표현들이 기억에 남는다. 다음번에 디즈니플러스에 풀리면 자막 없이 그냥 보면서 영어 표현들을 익혀볼 계획이다. 원래 감수성이 그다지 풍부한 편은 아닌데, 이번 작품은 왜이리 울컥했는지 모르겠다. 디즈니 특유의 가족애와 편견 없는 평등한 사회를 잘 구현했기에 더욱 감동적이었다. 마지막 장면이 특히 눈물흘리게 만드는데, 이별은 슬프지만 언젠가는 다시 만날 것이라는 희망을 가지게 하기에 더욱 절절하게 느껴졌다. ...

2023-6-17 · 1 min · 198 words · Junha

엘스비어 저자 워크샵

간만에 안암에 들릴 일이 있어서, 시간에 맞춰서 강연 하나를 들었다. 고려대학교 도서관에서 실시하는 여러 행사 중에서 해외 저자 초청 워크샵에 참석해서 강연을 들었다. 이번에 오신 분은 Applied Surface Science의 편집장(Editor)이신 Henrik Rudolph (Frederiksberg, Denmark 1958) 이셨다. 워크샵 주제는 ‘과학 출판에 있어 AI툴 사용에 관한 탐구 - AI툴의 장단점 및 저작권’이었다. 최근에 등장한 ChatGPT와 같은 AI툴은 우리가 일을 수행하는데 있어 생산성을 향상시켜줄 수 있는 훌륭한 방법으로 인식되고 있는데, 과학 출판에 있어서 AI를 사용하는 것이 과연 적절한가에 대한 질문을 던지셨다. ...

2023-6-17 · 2 min · 240 words · Junha

Ghiradelli Intense Chocolate 86% cacao

미국에 다녀온 나의 bestie가 전해준 초콜릿! San Francisco에 들리면서 거기에서 유명한 Ghiradelli 초콜릿을 사왔다고 한다. 공부하다가 잘 안풀리는 것 같으면 하나씩 주전부리로 까먹어야지ㅎㅎ 고마워!! 86% 카카오라 그런지 역시 진하긴 진하다. 그런데 씁쓸한 맛 뒤에 담백하게 퍼지는 단맛이 있어서 생각보다는 달다고 느껴졌다. 입이 출출하거나 군것질이 땡길 때, 이걸 하나 입에 넣으면 일시적으로는 그 헛배고픔이 사라진다! 적당히 달달하면서도 특유의 씁쓸함이 매력이다. 1개당 60kcal인데 당은 그렇게 많지 않지만, 포화지방의 양이 많다. 그런데 Dark Chocolate 특성상 한번에 많이 먹게 되지는 않아서 이정도면 괜찮다고 생각된다. ...

2023-6-12 · 1 min · 126 words · Junha

Jekyll timeago plugin으로 D-day 계산하기!

Junchive Jekyll 블로그가 어느 정도 틀이 잡혀서 새로운 plugins 추가하는데 맛들렸다. 지금까지 사용하고 있는건 jekyll-paginate-v2와 jekyll-sitemap 정도인데 필요에 따라 플러그인을 하나씩 추가할 듯 하다. Jekyll와 관련된 여러 plugin을 탐색하다가 자동으로 날짜 간격을 알려주는 jekyll-timeago을 사용해보기로 했다. jekyll-timeago는 Ruby를 기반으로 날짜 사이의 간격을 계산하고, 이를 Jekyll Liquid Template로도 사용할 수 있도록 만들어진 프로젝트이다. n일 지났다는 정확한 값과 더불어서 대략적으로 m개월 또는 k년이 지났다는 approximate distance도 계산해준다. Jekyll에 적용하기 설치과정 Gemfile에 gem "jekyll-timeago" 추가하기 _config.yml의 plugins 항목에 - jekyll-timeago 추가하기 Jekyll에 적용하기 ...

2023-6-12 · 1 min · 172 words · Junha