본문 바로가기

algorithm50

[SWEA] 4013.특이한 자석 / 시뮬레이션 @시뮬레이션 | 1h 백준 14891.톱니바퀴와 똑같은 문제 어려운 문제는 아니고, 그냥 차근차근 풀어가면 되는 문제다. 인덱스 관리도 약간 있어서 처음에 시뮬 연습하기에 좋은 문제인 듯. 근데 문제 잘못 이해해서, 로직을 잘못 짜서 고치느라 시간이 좀 걸렸다. 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeV9sKkcoDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 구현 방법 이번 문제는 재귀 식으로 만약 3번의 왼쪽이 돌아가면, 그 함수에서 다시 왼쪽을 검사해서 돌리는 식으로 재귀적으로 풀.. 2020. 1. 9.
[SWEA] 5653.줄기세포배양 / BFS, 시뮬레이션 @BFS, 시뮬레이션 약간 난이도 있는 시뮬레이션. 어렵게 생겨서 엄청 쫄았는데 생긴 것 보다는 어렵지 않다. (쉽다는건 아님..) 구현은 1시간 10분정도 걸렸는데 44/50개로 계속 fail 떠서.. 이거 잡는데 한시간 걸렸다ㅠ 엄청 어려운 원리는 아닌데 문제를 꼼꼼히 안읽어서 삽질 많이 했다. 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRJ8EKe48DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 구현 포인트 1. 세포가 번식해서 퍼져나가기기 때문에 BFS로 구현했다. 2. 큐에는 비활.. 2020. 1. 8.
[백준] 17244.아맞다우산 (java) / BFS, Permutation @시뮬레이션 풀면서 permu + bfs, 완탐 이렇게 돌리면 터지지 않을까 고민하면서 풀었는데 돌려보니 의외로 빨라서 당황. 시간복잡도 계산하는 연습이 조금 더 필요할 듯 하다. 문제 자체는 크게 어렵지 않았는데, 챙겨야 하는 물건이 없을 수 있다는 점을 간과해서 런타임 에러가 떴고, 그걸 잡느라 조금 고생했다. 근데 또 물건이 없을 때에도 시작점과 도착점 사이에 벽이 있을 수 있다는 사실을 간과해서, 또 약간의 삽질을.. 문제 조건을 꼼꼼히 보는 습관을 들여야겠다. Gold 2라고 되어있어서 쫄았는데, 그정도 문제는 아닌 것 같고 bfs 연습하기 좋은 코드인 듯! # 구현 방법 1. 맵을 입력받으면서 물건의 위치를 ArrayList에 저장한다 2. 물건 개수 크기의 배열을 만들어서 nextPermut.. 2020. 1. 7.
백준 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.