일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- bfs
- IntelliJ
- Java
- Linux
- 구현
- 백엔드
- 문자열
- 프로그래머스
- spring boot
- 해시맵
- 스타트업
- 배열
- HashMap
- 이직
- 스프링 부트
- 개발자
- HTTP
- docker
- dfs
- spring
- 구름LEVEL
- 인텔리제이
- 명령어
- 스프링
- 자료구조
- 스프링부트
- 해결
- 코딩테스트
- 도커
- 주니어
- Today
- Total
목록코딩테스트 (45)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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..
코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 작성코드 1. board[][] 배열을 세로로 접근해야 하는데(각 인형뽑기 번호에 따른 컬럼), 이를 위한 index 배열을 선언한다. 2. 주어진 board[][] 배열은 다음과 같이 접근한다 : board[index[move]][move] 3. moves[] 배열을 돌며 인형뽑기를 진행한다. 경우의 수를 처리해준다 (하단 코드 참조) 4. 상쇄된 인형의 갯수를 반환한다. import java.util.*; class Solution { public int solution(int[][]..
코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 작성 코드 1. 한 유저당 한 사람에 대해 1회만 신고가 유효하므로 report 중복값을 제거한 후 reportList에 저장한다. 2. reportList를 읽어 신고자와 신고당한자의 이름을 각각 reportArray[i][0], reportArray[i][1]에 저장한다. 3. reportArray를 돌며 각 유저가 신고당한 횟수를 reportCount배열에 저장한다. 4. 정지 당한 유저 (2회 이상)를 체크한 후, 각 신고자가 받을 처리 결과 메일..