본문 바로가기

algorithm/Baekjoon32

백준 6118. 크로스워드 퍼즐 쳐다보기(java) / 시뮬레이션 @시뮬레이션 간단한 시뮬레이션 문제 어려워 보이는데 별로 어렵지는 않다. 단지 풀면서 이게 맞나...? 싶었을 뿐. +그리고 처음에 문제 이해할 때 약간 알쏭달쏭했다. # 구현 방법 1. findStart() - 이중 for문을 돌면서 첫 행 또는 첫 열에서 시작하거나, 이전 문자가 #인 출발점을 찾는다. 이렇게 하면 시작점을 찾을 수 있다. 2. horizenWord(), vertiWord() - 찾은 시작점에서 수직(위->아래), 수평(왼쪽->오른쪽) 방향으로 단어를 찾고, 단어의 길이가 2 이상인 경우에만 리스트에 추가한다. 3. findFirst() - 리스트에 있는 단어들 중에서 사전순으로 가장 앞에있는 단어를 찾는다. 일단 첫 글자부터 비교하고,. 첫 글자가 같은 경우 가장 긴 단어의 길이(2.. 2020. 1. 7.
백준 6118. 숨바꼭질(java)(수정) / 다익스트라(우선순위 큐) @ 다익스트라(사실 다익스트라 안 써도 풀 수 있다고 함. 가중치가 전부 1이니까 BFS로 풀어도 된다.) 다익스트라 개념 공부를 위해서 푼 문제 다익스트라 문제를 풀 때에는 1. 일반 큐 + 점화식을 사용해서 푸는 방법 2. 우선순위 큐 + boolean형 visit 을 사용해서 푸는 방법 (점화식의 기능을 우선순위 큐가 대신함) 우선순위 큐 + 점화식을 같이 써서 풀어야한다!!! 우선순위 큐를 쓰면, 우선순위 큐 자체가 Comparable로 점화식 역할까지 해 주기 때문에 점화식을 쓸 필요가 없다. 방문 체크를 하는 visit만 쓰면 된다. (처음에는 코드를 어떻게 짜야할지 감이 안와서 아래 코드를 참고했다) https://jaimemin.tistory.com/tag/%EB%8B%A4%EC%9D%B5.. 2020. 1. 7.