반응형

알고리즘/프로그래머스 21

[프로그래머스]JAVA - Level2. 두 큐 합 같게 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제 설명에 나와있는 내용대로 큐를 이용해서 풀면 된다. 문제를 보자마자 높은 값에서 낮은 값으로 인자를 이동시키면 풀면 된다는 걸 알았다. 하지만 큐의 선언과 사용 방법을 알지 못해서 구글링을 했다. 이 문제에서 주의해야 할 건 합계(sum)가 int 형이면 오버플로우가 발생할 수 있기 때문에 long 형으로 선언해야 한다는 거다. 사실 문제를 잘 읽고 풀었다면 ..

[프로그래머스]JAVA - Level2. 124 나라의 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제를 보자마자 몫과 나머지를 이용하는 문제라는 걸 파악했지만 생각보다 오래 걸렸음. 이유는 기본적인 3진법과의 차이가 있다는 점. 기본적인 3진법: 0, 1, 2, 10, 11, 12 124나라의 3진법: 1, 2, 4, 11, 12, 14 차이점은 "일의 자리에 1, 2, 4 모든 숫자가 올 수 있다." 그렇기 때문에 나머지가 0으로 떨어지는 경우 숫자에서 -1을 해주어야한다. class..

[프로그래머스]JAVA - Level3. N으로 표현

https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음부터 도저히 감이 안잡힌 문제라서 다른 블로그를 봤더니 대부분이 깊이 우선 탐색(dfs)으로 문제를 해결하는 걸 봤습니다. 깊이 우선 탐색에 대해서 잘 모르시는 분은 아래를 참고해주세요. (https://sookr5416.tistory.com/103) [JAVA] 깊이 우선 탐색 DFS 개념과 작동 방식 금일 프로그래머스에서 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 관련 알고리즘 문..

[프로그래머스]JAVA - Level3. 입국심사

https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 알고리즘 2단계를 간간히 풀다가 3단계를 처음으로 풀어봤습니다. 심사하는데 걸리는 시간이 다른 각 각의 심사관들이 N명을 검사하는데 걸리는 최소 시간을 구하는 문제입니다. 처음에는 1초씩 더 해가면서 풀었더니 시간 초과가 발생해서 이분 탐색을 이용해서 풀었습니다. 1. 심사하는데 걸리는 시간의 최소값(min)과 최대값(max)을 구함 2. 최소값과 최대값의 중간값(mid) [이분 탐색 시간]..

[프로그래머스]JAVA - Level 2. 뉴스 클러스터링

https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.ArrayList; class Solution { public int solution(String str1, String str2) { int answer = 0; ArrayList arr1 = new ArrayList(); ArrayList arr2 = new ArrayList(); // 대문자로 변경 str1 = str1.toUpperCase(); str2 = s..

[프로그래머스]JAVA - Level 2. 문자열 압축

https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public int solution(String s) { int answer = Integer.MAX_VALUE; int slen = s.length(); if (slen == 1) return 1; // 문자열 길이가 1일 경우 for (int i=1; i 1) temp += cnt; // 다를 경우 숫자 입력 및 전 단어 입력 temp += word1; cnt =..

[프로그래머스]JAVA - Level 2. 오픈채팅방

https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public String[] solution(String[] record) { ArrayList List = new ArrayList(); // id + 들어왔습니다. 나갔습니다. Map map = new HashMap(); // id, name for (int i=0; i uid1234, Ryan break; } } String[..

[프로그래머스]JAVA - Level 1. 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.Arrays; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(completion); for (int i=0; i

[프로그래머스]JAVA - Level 1. 비밀지도

https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[arr1.length]; for (int i=0; i answer[i].length()) { answer[i] = "0" + answer[i]; } // 변환 0 -> 공백, 1 -> # answer[i] = an..

[프로그래머스]JAVA - Level 1. 키패드 누르기

https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public String solution(int[] numbers, String hand) { String answer = ""; // 초기 엄지손가락 위치 설정 *(0,3), #(2,3) int lx = 0; int ly = 3; int rx = 2; int ry = 3; for (int i=0; i chkrx + chkry) { answer += "R"; rx =..

반응형