본문 바로가기

Java46

[Programmers/Summer,Winter Coding(2019)] 멀쩡한 사각형 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 멀쩡한 사각형 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 풀이 최대공약수를 먼저 구한다. x좌표 + y좌표 - 1 이란 공식을 생각한다. 전체 사각형에서의 직각삼각형을 보고 있자니 같은 비율의 최소 직각삼각형에서의 길이를 구한 후, 그 배수만큼 곱하면 되겠단 생각이 먼저 들었다. 쉽게 말해서 최대공.. 2021. 5. 28.
[프로그래머스(programmers)] (2019 KAKAO BLIND RECRUITMENT) 오픈채팅방 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 오픈채팅방 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42888 문제 풀이 split 을 사용하여 E / L / C , 유저아이디, 유저닉네임 이렇게 세개로 나눴다. hashmap 을 사용하여 유저아이디에 따른 마지막 설정한 유저닉네임을 넣어줬다. 처음 풀었을 땐 리스트를 배열로 옮김과 동시에 마지막 변경된 유저 닉네임을 고쳐주기 위하여 replace를 사용하여 고쳐줬었다. 그런데 25번 부터 32번까지 시간초과가 났다. 문장을 만들고 바뀐 닉네임을 다시 변경을 하는 로직이여서 오래걸린단 생각에 반대로 유저닉네임들부터 바꾸고 문장을 만들잔 생각을 했다. 그래서 replace를 사용하.. 2021. 5. 27.
[프로그래머스(programmers)] (Lv2) 124 나라의 숫자 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 124 나라의 숫자 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제 풀이 첫번째 시도 첫 시도에서는 문자열 str 에 숫자를 받아와 뒤집어 주게 풀었었다. 이렇게 하니 효율성에서 시간 초과가 나서 애초에 문자를 추가 할 때, 앞에 추가해주면 되는거였다. public static String solution(int n) { String answer = ""; String str = ""; while (n > 0) { int num = n % 3; n = n / 3; if(num == 0) { num = .. 2021. 5. 26.
[프로그래머스(programmers)] (Lv2) 전화번호 목록 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 전화번호 목록 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 문제 링크 class Solution { public boolean solution(String[] phone_book) { boolean answer = true; top : for(int i = 0; i < phone_book.length; i++) { for(int.. 2021. 5. 20.
[프로그래머스(programmers)] (Lv1) K번째 수 알고리즘 문제 풀이 / 프로그래머스 (programmers) - K번째 수 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제 풀이 public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for(int i = 0; i < commands.length; i++){ int[] arr = Arrays.copyOfRange(array, commands[i].. 2021. 5. 19.
[프로그래머스(programmers)] (Lv1) 완주하지 못한 선수 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 완주하지 못한 선수 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 문제 풀이 public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(complet.. 2021. 5. 19.
[프로그래머스(programmers)] (Lv2) 다리를 지나는 트럭 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 다리를 지나는 트럭 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 문제 풀이 public static int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 1; Queue wait = new LinkedList(); Queue c.. 2021. 5. 18.
[프로그래머스(programmers)] (Lv2) 프린터 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 프린터 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 이번 문제를 풀고나서 다른 사람들의 풀이를 살펴보는데 내가 짠 코드보다 한 단계 더 간편하게 풀 수 있어 그 풀이를 조금 응용해보았다. 문제 풀이 처음 시도 동일한 중요도 일 때, location의 위치를 구별해야하므로 check 이라는 변수를 두고 갱신되는 location의 위치를 .. 2021. 5. 17.
[프로그래머스(programmers)] Summer/Winter Coding(~2018) 배달 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 배달 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 문제 풀이 public class delivery { public static int solution(int N, int[][] road, int K) { int answer = 0; int[][] order = new int[N][N]; for(int i .. 2021. 5. 16.
반응형