목록전체보기 (117)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 숫자 x를 주어진 세 가지 방식을 활용하여 y로 변환할 수 있는 최소 횟수를 구하는 문제로, BFS로 접근하여 풀어냈다. 변환된 각각의 숫자를 하나의 Node로 보고, 한 번 변환될 때마다 Node에 숫자 number와 그 숫자가 되기까지의 변환 횟수를 count 변수에 저장하도록 했다. 문제 설명대로라면 x에서 시작하여 y까지 가야하는 게 맞지만, y에서 시작하는 것이 경우의 수 소거에 유리하여 반대 방향으로 시작했다. 로직 설명 - Node 클래스(이하 노드) 생성: 멤버변수 number, co..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 달리기를 하며 이름이 불리는 선수와 그 선수의 바로 앞에 있는 선수의 순위(위치)를 바꾸어주면 되는 문제이다. 범위를 벗어나는(1등 선수) calling 은 없으므로 별도의 순위변경에 대한 예외처리는 필요없었다. 다만 복잡도를 줄이기 위해 이중 반복문을 통한 탐색이 아닌 해시맵을 활용한 탐색 및 등수의 변경으로 로직을 만들어야했다. 인풋값이 각각 50,000과 100,000이였기 때문이다. 로직 설명 - 선수들의 순위를 이름으로 바로 접근할 수 있도록 map을 선언하여 이름과 순위를 key, val..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 DFS(실패) 맵에서 이동할 수 있는 모든 경우의 수를 탐색하며 최종 목적지에 도달할 때마다 최소값을 갱신하고, 경우의 수가 최대 10000개이므로 DFS로 풀면 되는 문제라고 판단했다. 다만 보통의 DFS문제들은 visited 배열을 별도로 선언하여 푸는 반면 여기서는 maps[][]가 주어지므로 방문한 경로는 벽으로 표시(0으로 표시)하는 방식으로 maps를 이용했다. 이동은 동서남북의 네 가지만 가능하므로, 한 회차마다 네 방향으로 이동가능여부를 체크하고 이동하도록 했다. 문제는 금방 풀었으나..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 모든 던전을 탐색하면서 던전 진입이 가능한지 여부(최소 피로도를 충족하는가)를 체크하고, 그에 따라 발생하는 두 가지 선택지를 고려해야하는 문제이다. 두 가지 선택지는 다음과 같다: 1) 최소 피로도 충족: 던전에 진입해 던전을 탐험 후 소모피로도를 감소시킨 후에 다음 던전을 탐험 2) 최소 피로도 미충족: 현재까지의 탐험 횟수와 최대 탐험 횟수(max)를 비교하여 큰 쪽을 최대 탐험횟수로 변경 이러한 접근 방식을 고려하면 모든 경우의 수를 탐색해야하는데, 던전의 개수가 8개 이하이기 때문에 DFS..
Spring 공식문서 가이드를 훑어보는 중에 매번 Spring Initializer를 이용하여 프로젝트를 생성하는 건 너무 번거롭다고 판단되어 그때그때 필요한 의존성을 추가하고자 했다. 이전에 Maven 사용 시에는 필요한 의존성을 온라인에서 찾아 xml 문법으로 된 코드를 긁어와서 직접 붙여넣기도 했는데, 인텔리제이에서 좀 더 간편하게 사용하는 방법이 있어 기록을 남겨둔다. Gradle로 생성된 프로젝트를 기준으로 한다. 1. 프로젝트 폴더 최상단에서 build.gradle 파일 열기 2. dependencies에서 우클릭 - Generate - Add Dependency 3. 필요한 dependency 검색 후 add 4. 우측 Gradle 뷰에서 새로고침 버튼 클릭 - 우측에 없는 경우 상단 메뉴 ..