💡Problem Solving/Programmers 72

[프로그래머스] 징검다리 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/43236?language=java# 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 풀이 아래 이분 탐색 문제와 동일한 유형의 문제이다. 2021.11.29 - [Problem Solving/BOJ] - [BOJ 2110] 공유기 설치 (Java) 2021.12.01 - [Problem Solving/BOJ] - [BOJ 1654] 랜선 자르기 (Java) 2021.11.30 - [Problem So..

[프로그래머스] 다단계 칫솔 판매 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 풀이 구현 문제이다. name, referral, amount를 멤버로 가지는 Seller 클래스와 key:name, value:Seller를 가지는 HashMap을 구현하여 문제를 풀었다. 소스코드 import java.util.*; class Seller { String name; String referral; int amount; public S..

[프로그래머스] 거리두기 확인하기 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/81302#fn1 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 거리두기를 위하여 응시자들..

[프로그래머스] 멀쩡한 사각형 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 풀이 y = h/w * x 아래와 같이 일차 방정식이라 생각하고 x의 값을 대입하면서, 소수점 값이 나오면 해당 소수점을 버리고 더해주었다. 그러면 절반의 넓이에 해당하는 사각형 개수를 구할 수 있고, 여기에 2를 곱하면 답이 된다. 소스코드 class Solution { public long solution(int w, int ..

[프로그래머스] 베스트앨범 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/42579# 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 풀이 Genre와 Song을 클래스로 구현하여 쉽게 풀 수 있다. 해당 문제의 목적은 장르 별로 가장 많이 재생된 노래 두 개를 출력하는 것이다. 아래의 같은 조건이 있다. 1. 장르 내 속한 노래의 총 재생 횟수가 가장 많은 장르 부터 출력 - 모든 장르의 총 재생 횟수는 다르다. - 만약 장르내 속한 곡이 한 개라면 한 개만 출력한다. 2. 장르 내..

[프로그래머스] 3 x n 타일링 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/12902# 코딩테스트 연습 - 3 x n 타일링 programmers.co.kr 풀이 전형적인 dp문제로 규칙을 찾아서 점화식을 세워서 풀 수 있다. 아래 문제는 조금 더 쉬운 버전이다. 2021.10.29 - [Problem Solving/Programmers] - [프로그래머스] 2 x n 타일링 (Java) [프로그래머스] 2 x n 타일링 (Java) 문제 https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 ..

[프로그래머스] 순위 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/49191# 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다. 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수..

[프로그래머스] 호텔 방 배정 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/64063 코딩테스트 연습 - 호텔 방 배정 programmers.co.kr "스노우타운"에서 호텔을 운영하고 있는 "스카피"는 호텔에 투숙하려는 고객들에게 방을 배정하려 합니다. 호텔에는 방이 총 k개 있으며, 각각의 방은 1번부터 k번까지 번호로 구분하고 있습니다. 처음에는 모든 방이 비어 있으며 "스카피"는 다음과 같은 규칙에 따라 고객에게 방을 배정하려고 합니다. 한 번에 한 명씩 신청한 순서대로 방을 배정합니다. 고객은 투숙하기 원하는 방 번호를 제출합니다. 고객이 원하는 방이 비어 있다면 즉시 배정합니다. 고객이 원하는 방이 이미 배정되어 있으면 원하는 방보다 번호가 크면서 비어있는 방 중 가장 번..

[프로그래머스] 행렬 테두리 회전하기 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 풀이 단순 구현문제인데 너무 어렵게 생각했던 것 같다. 시계 방향으로 돌면서 이전 값을 현재 값으로 갱신해주는 것을 반복하면 된다. 현재 값을 갱신할 때 최소값 비교를 통해 최소값 또한 갱신한다. 소스코드 import java.util.*; class Solution { public int[][] map; public ArrayList a..

[프로그래머스] 압축 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 풀이 구현 문제이다. 아스키 코드를 이용하여 Map에 각 알파벳에 해당하는 색인 번호를 저장해두고 시작한다. 마지막 인덱스 경계값을 신경써서 구현해야 한다. 풀이는 소스코드에 주석을 달아놨다. 소스코드 import java.util.*; class Solution { public int[] solution(String msg) { ArrayList list = new ArrayL..