본문 바로가기

알고리즘

(73)
팩맨[G1] G1 난이도에 비해 생각보다 어렵지 않았다. 지문을 오래 읽고, 모듈화를 잘게 쪼개어 기능 단위 구현으로 해결. 하지만 바로 풀어서였지, 아마 디버그로 돌아갔으면 정말로 힘들었을 것이라 생각한다. https://www.codetree.ai/training-field/frequent-problems/problems/pacman/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai //풀이 : 지문 읽는데 40분 걸림 //3시간컷, 챕터별로 전부 디버깅 중간에 실시하였음 package codeTree; i..
예술성[G3] G3이라고 생각하기 힘들게 어렵게 풀었다. 회전 알고리즘은 메이즈 러너와 유사하다. https://www.codetree.ai/training-field/frequent-problems/problems/artistry/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai package codeTree; /* 이게 왜 G3일까? 엣지가 없어서인듯 여기서 외워야 할 것 반시계 방향 회전 : //rotated[row][col] = original[col][N-1-row] 시계 방향 : rotated[row]..
나무박멸[G4] (틀림 - 널포인터 이슈가 있는 듯) 최초로 풀은 문제. 난이도가 타 문제 대비 쉬운 편이라고 생각한다. 처음으로 메서드 단위로 짤라서 모듈화를 통해 풀은 문제지만, 이름을 맞추고 쓸데없는 곳에 시간을 많이 들인 듯. https://www.codetree.ai/training-field/frequent-problems/problems/tree-kill-all/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai package codeTree; 너무 깊숙히 코드를 예쁘게 다듬는데 몰입하지 말자 /* 나무박멸 https://www.codetr..
코드트리빵[G2] https://www.codetree.ai/training-field/frequent-problems/problems/codetree-mon-bread/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai package codeTree; //https://www.codetree.ai/training-field/frequent-problems/problems/codetree-mon-bread/description?page=1&pageSize=20 //코드트리빵 //1357 ~ 1631 //List.rem..
싸움땅[G2] https://www.codetree.ai/training-field/frequent-problems/problems/battle-ground/description?page=1&pageSize=20 package codeTree; /* https://www.codetree.ai/training-field/frequent-problems/problems/battle-ground/description?page=1&pageSize=20 G1 싸움땅 dr dc 중 에러나서 디버깅에 30분 썼음 총 2시간 50분 + 20분, 또 문제 제대로 안 읽어서 히든테케 틀렸다. 진짜 지문 제대로 읽어야 할 듯 */ import java.util.*; import java.io.*; public class G1_Battle..
메이즈 러너[G3] [실패] 배열 돌리기 이슈로 문제 풀이 실패하였음.. 이후 예술성에서도 똑같은 유형이 나오니 참고할 것. https://www.codetree.ai/training-field/frequent-problems/problems/maze-runner/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai // 3: 00 (Fail) 중도 포기 //다음에 풀 때는 A4와 종이를 가져오자 //암산으로 못 풀겠음 도형.. //그 외에는 전보다 나아짐 //PQ 통해서 우선순위 골라서 사각형 범위에 맞는 모험가 탐색 -> 이후..
16236 - 아기상어(G3) 문제 https://www.acmicpc.net/problem/16236 풀이 문제의 핵심은 BFS를 사용하여 가장 가까운 먹이를 찾고 이를 반복하는 것이다. 이 부분에서 문제의 조건인 '먹을 수 있는 물고기가 1마리보다 많다면' 의 조건을 올바르게 구현하는데 많은 시간이 들었다. 첫 번째는 단순히 BFS의 사방 탐색 방향을 조건과 같이 위쪽 / 왼쪽 / 오른쪽 / 아래로 설정했으나, 이러한 방법이 문제가 있다는 사실을 파악하였다. 두 번째로 조건에 맞는 값들을 완전 탐색으로 전부 포집 후, 이를 소팅하려 했으나 의미없는 반복문이 너무 늘어나고 방향성을 수정하게 되었다. bfs문을 돌리면서 상어가 먹을 수 있는 조건의 먹이들을 확인하고 이를 우선순위 큐에 집어넣어 정렬한 뒤 최소값을 찾는 방법을 생각해보..
17144 - 미세먼지 안녕(G4) 문제 https://www.acmicpc.net/problem/17144 풀이 시뮬레이션 문제로, 사방탐색을 제외하면 별도의 특별한 알고리즘은 사용하지 않았다. 대개 헷갈릴 부분이 '미세먼지의 확산'을 구현하는 것이라고 생각되는데, 완전탐색으로 해당 기능을 수행하면 확산이 동시에 일어나는 것이 아니라, 이전 확산 값에 영향을 받는다. 이러한 문제를 해결하기 위해 1. 미세먼지 클래스를 생성 후, 완전탐색으로 조건에 맞는 미세먼지 객체를 생성하여 큐에 저장한다. 2. map(2차원 배열)의 값들을 전부 0으로 초기화하였다. 영향을 받게 하지 않기 위함으로, Dust Class의 내부 메서드로 확산량을 계산 후 값을 더해주는 방식으로 영향을 받지 않게 하였다. 3. 이후 자체 메서드로 구현한 바람으로 인한 ..