목록전체보기 (117)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 노가다 이외의 방법으로 풀어보려고 몇 번 두고 계속 봤던 문제인데, 결국 문제를 읽으며 예외처리를 하나씩 추가해나가는 방식으로 문제를 풀 수밖에 없었다. - 다트 던지기가 3라운드로 제한되어 있으니 숫자별로 자르는 동작 없이 한 번에 문자 한 개씩 읽어가며 문제를 해결하고자 함. 이를 위해 별도의 int[] arr, idx를 선언하여 사용 - 숫자를 읽어올 때마다 직전 점수를 int[] arr에 저장함 - 현재 문자가 숫자인데 다음 문자가 '0'일 경우 숫자 10으로 판단, 10으로 저장 후 인덱스 두 번 증..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 또는 2를 더하여 주어진 n까지 도달할 수 있는 경우의 수를 계산한 후 1234567로 나눈 나머지를 구하는 문제이다. - DFS를 재귀로 구현하여 사용했는데 시간초과가 발생함 - 구현하고보니 피보나치수열임을 발견, 배열로 변경하여 문제 해결 Note - for문 내부에서 덧셈 연산 시 1234567로 바로 나누어 나머지를 배열에 저장했다. 덧셈 결과만 먼저 저장하는 경우 오버플로우 발생으로 테스트 케이스 7번부터 끝까지 실패한다. class Solution { public long solution(int..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제가 왜 레벨1인지는 사실 아직도 잘 이해가 안 된다. 레벨1.5 ~ 2는 되어야하지 않을까? 자바에서의 HashSet과 HashMap의 활용에 익숙해질때까지 며칠동안 다른 문제들을 풀면서 이 문제도 간간히 눈으로 봤는데, 어느 순간 한 번에 로직을 구성할 수 있을 것 같아 기존 코드를 지우고 새로 작성했다. - 문제 해결 과정에서 3중 for문으로 배열을 탐색해야하여 몇몇 테스트 케이스에서 시간초과가 발생함 - 신고된 리스트와 횟수를 배열을 활용하여 저장하고 탐색하기보다는 Map과 Set을 활용하여 탐..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해시로 분류되어있는 문제이나, 시간복잡도를 줄여 단순비교를 하는 방식으로 풀었다. - 처음에는 단순하게 반복문을 두 번 돌며 접두어 포함여부를 확인하였으나 효율성테스트에서 걸림(n^2) - 사전순으로 정렬 후, 한 바퀴만 돌면서 인접 문자열의 접두어 포함여부만 비교하니 효율성 테스트를 통과함 (n) Note - contains() 메서드를 사용할 경우 문자열 중간에 포함되는 경우를 거를 수가 없어 몇몇 테스트 케이스에서 걸린다. - 정답코드에서 input명이 쓸데없이 길어 phone_book -> contac..
스웨거 공식 문서에 기입된 스펙에 맞게 component를 작성한 후, 재사용되는 파라미터들(검색 창의 검색 파라미터)을 별도 문서에 정의하여 component별로 참조해서 사용하고자 하였다. 그러나 글 제목과 같은 에러메시지가 출력되어 원인을 검색해보니 다양한 이유와 해결방법이 제시되어있었는데, 나의 경우에는 순환참조로 인한 오류가 원인으로 드러났다(제목의 Component는 오류가 발생한 component의 이름을 의미한다). 내가 관리하는 스웨거의 구조에서는 경로관리파일, 컴포넌트(파라미터, 스키마 등) 정의 파일, 경로별/메서드별 정의(req 메서드, res 양식 등) 파일이 각각 다른 파일로 분리되어 있었는데 알고보니 컴포넌트 정의파일과 경로 파일이 서로를 참조하고 있었던 것이다. 문제의 원인이..