Seren dev's blog
article thumbnail
[프로그래머스] Lv.1 : 체육복 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 2

article thumbnail
[프로그래머스] Lv.1 : 실패율 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1

article thumbnail
[프로그래머스] Lv.2 : 쿼드압축 후 개수 세기 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 분할정복 알고리즘을 사용했다. 코드 class Solution { static int oneCnt = 0; static int zeroCnt = 0; public int[] solution(int[][] arr) { divideConquer(0, 0, arr.length, arr); int[] answer = {zeroCnt, oneCnt}; return answer; } static voi..

[프로그래머스] Lv.2 : 택배상자 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 영재가 실어야 하는 택배상자는 크기가 모두 같으며 1번 상자부터 n번 상자까지 번호가 증가하는 순서대로 컨테이너 벨트에 일렬로 놓여 영재에게 전달됩니다. -> 주 컨테이너는 1번부터 n번까지 순서대로 전달되므로 큐 자료구조를 사용한다. 보조 컨테이너 벨트는 앞 뒤로 이동이 가능하지만 입구 외에 다른 면이 막혀 있어서 맨 앞의 상자만 뺄 수 있습니다(즉, 가장 마지막에 보조 컨테이너 벨트에 ..

article thumbnail
[프로그래머스] Lv.2 : 롤케이크 자르기 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 롤케이크를 잘랐을 때, 왼쪽과 오른쪽 롤케이크에 포함된 토핑 가짓수가 같은 경우의 수를 구해야 한다. 1

[프로그래머스] Lv.2 : k진수에서 소수 개수 구하기 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. n을 k진수 문자열로 변환 2. "0"을 기준으로 문자열 나누기 3. 각 문자열을 숫자로 변환 후, 그 숫자가 소수인지 판별하여 소수 개수를 카운트한다. 주의할 점 - n은 100만 이하이며 2진수 등으로 변환했을때 int 범위를 벗어날 수 있다. 따라서 Long.parseLong()을 사용해야한다. - 소수 판별 로직에서 for문 탈출 조건을 i * i

article thumbnail
[프로그래머스] Lv.2 : 주차요금계산 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산해야 한다. 이 때 차는 여러번 입출차를 할 수 있으므로, 각 차의 누적 주차 시간을 계산해서 최종적으로 요금을 계산해야 한다. 먼저 문제를 풀기위한 자료구조는 다음과 같다. 차 번호는 고유하므로 차 번호를 Key로, 차의 정보를 Value로 하는 Map을 생성한다. static class C..

article thumbnail
[프로그래머스] Lv.2 : 소수 찾기 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. 에라토스테네스의 체를 사용하여 소수를 구한다. notPrime[i] = false라면 i는 소수이다. 2. char[] words에 한 글자씩 순서대로 숫자를 저장한다. 3. 길이가 1 ~ words.length인 순열을 구해서 숫자를 만들고, 그 숫자가 소수인지 판별하여 개수를 카운트한다. 코드 class Solution { static boolean[] notPrime = new b..

[프로그래머스] Lv.2 : [1차] 프렌즈4블록 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 로직은 다음과 같다. 1. 2x2 로 배치된 블록 찾기 - char[][] map, boolean[][] check - 지우는 블록의 위치에 check[i][j] = true 2. 블록 지우기(중복 고려) + 지우는 블록의 개수를 세면서 해당 위치의 map을 'x'으로 변경 주의할 점 check[i][j] = false로 복구해야 한다. 3. 블록이 지워진 후 위에 있는 블록을 아래로 옮기기..

article thumbnail
[프로그래머스] Lv.2 : 더 맵게 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 우선순위 큐(PriorityQueue)를 사용하면 쉽게 풀 수 있는 문제다. 로직 1. 모든 음식의 스코빌 지수를 PriorityQueue에 넣는다. PQ를 사용하면 자동으로 스코빌 지수가 작은 순대로 정렬된다. 2. PQ의 크기가 2이상이라면 다음 과정을 반복한다. - pq.poll()을 통해 2개를 꺼낸다. - 첫번째가 K보다 크다면 flag = true로 변경하고 break - 새로운 ..

article thumbnail
[프로그래머스] Lv.3 : 베스트 앨범 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1 고유 번호가 작은 순대로) 이 때 장르에 속한 곡이 1곡이라면 1곡만 출력한다. 먼저 장르 이름을 key로 하는 HashMap이 필요하다. value에는 여러가지 값이 필요로 하는데, 각 장르에 포함된 모든 노래 재생 횟수와 각 노래마다 재생 횟수와 고유 번호를 저장해야 한다. 이를 위해 class Music과 Genre를 생성했다. Genre에 ArrayList 멤버를 생성해 각 장르에..

article thumbnail
[프로그래머스] Lv.2 : 모음사전 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 완전탐색 완전탐색으로 만들 수 있는 모든 문자열을 순서에 맞게 탐색하며 카운팅하고, 정답을 찾으면 탐색을 모두 중단한다. 코드 class Solution { static char[] alphabet = {'A', 'E', 'I', 'O', 'U'}; static int cnt = 0; // 정답 static boolean flag; // 정답을 찾았을 때 true로 변경 public in..