본문 바로가기

Algorithm/Programmers258

[Programmers] Lv.1 | [PCCE 기출문제] 10번 / 데이터 분석 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/250121문제 설명AI 엔지니어인 현식이는 데이터를 분석하는 작업을 진행하고 있습니다. 데이터는 ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"]으로 구성되어 있으며 현식이는 이 데이터들 중 조건을 만족하는 데이터만 뽑아서 정렬하려 합니다.예를 들어 다음과 같이 데이터가 주어진다면data = [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]] 이 데이터는 다음 표처럼 나타낼 수 있습니다. codedatemaximumremain1203001041008022030.. 2025. 11. 11.
[Programmers] Lv.1 | [PCCE 기출문제] 9번 / 이웃한 칸 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/250125문제 설명각 칸마다 색이 칠해진 2차원 격자 보드판이 있습니다. 그중 한 칸을 골랐을 때, 위, 아래, 왼쪽, 오른쪽 칸 중 같은 색깔로 칠해진 칸의 개수를 구하려고 합니다.보드의 각 칸에 칠해진 색깔 이름이 담긴 이차원 문자열 리스트 board와 고른 칸의 위치를 나타내는 두 정수 h, w가 주어질 때 board[h][w]와 이웃한 칸들 중 같은 색으로 칠해져 있는 칸의 개수를 return 하도록 solution 함수를 완성해 주세요.이웃한 칸들 중 몇 개의 칸이 같은 색으로 색칠되어 있는지 확인하는 과정은 다음과 같습니다.1. 정수를 저장할 변수 n을 만들고 board의 길이를 저장합.. 2025. 11. 11.
[Programmers] Lv.1 | [PCCP 기출문제] 1번 / 붕대 감기 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/250137 문제 설명어떤 게임에는 붕대 감기라는 기술이 있습니다.붕대 감기는 t초 동안 붕대를 감으면서 1초마다 x만큼의 체력을 회복합니다. t초 연속으로 붕대를 감는 데 성공한다면 y만큼의 체력을 추가로 회복합니다. 게임 캐릭터에는 최대 체력이 존재해 현재 체력이 최대 체력보다 커지는 것은 불가능합니다.기술을 쓰는 도중 몬스터에게 공격을 당하면 기술이 취소되고, 공격을 당하는 순간에는 체력을 회복할 수 없습니다. 몬스터에게 공격당해 기술이 취소당하거나 기술이 끝나면 그 즉시 붕대 감기를 다시 사용하며, 연속 성공 시간이 0으로 초기화됩니다.몬스터의 공격을 받으면 정해진 피해량만큼 현재 체력이 줄.. 2025. 11. 10.
[Programmers] Lv.1 | 가장 많이 받은 선물 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/258712 선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다. 두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다.예를 들어 A가 B에게 선물을 5번 줬고, B가 A에게 선물을 3번 줬다면 다음 달엔 A가 B에게 선물을 하나 받습니다.두 사람이 선물을 주고받은 기록이 하나도 없거나 주고받은 수가 같다면, 선물 지수가 더 큰 사람이 선물 지수가 더 작은 사람에게 선물.. 2025. 11. 8.
[Programmers] Lv.1 | [PCCE 기출문제] 10번 / 공원 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/340198 지민이는 다양한 크기의 정사각형 모양 돗자리를 가지고 공원에 소풍을 나왔습니다. 공원에는 이미 돗자리를 깔고 여가를 즐기는 사람들이 많아 지민이가 깔 수 있는 가장 큰 돗자리가 어떤 건지 확인하려 합니다. 예를 들어 지민이가 가지고 있는 돗자리의 한 변 길이가 5, 3, 2 세 종류이고, 사람들이 다음과 같이 앉아 있다면 지민이가 깔 수 있는 가장 큰 돗자리는 3x3 크기입니다. 지민이가 가진 돗자리들의 한 변의 길이들이 담긴 정수 리스트 mats, 현재 공원의 자리 배치도를 의미하는 2차원 문자열 리스트 park가 주어질 때 지민이가 깔 수 있는 가장 큰 돗자리의 한 변 길이를 ret.. 2025. 11. 7.
[Programmers] Lv.1 | [PCCE 기출문제] 9번 / 지폐 접기 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/340199 민수는 다양한 지폐를 수집하는 취미를 가지고 있습니다. 지폐마다 크기가 달라 지갑에 넣으려면 여러 번 접어서 넣어야 합니다. 예를 들어 지갑의 크기가 30 * 15이고 지폐의 크기가 26 * 17이라면 한번 반으로 접어 13 * 17 크기로 만든 뒤 90도 돌려서 지갑에 넣을 수 있습니다. 지폐를 접을 때는 다음과 같은 규칙을 지킵니다.지폐를 접을 때는 항상 길이가 긴 쪽을 반으로 접습니다.접기 전 길이가 홀수였다면 접은 후 소수점 이하는 버립니다.접힌 지폐를 그대로 또는 90도 돌려서 지갑에 넣을 수 있다면 그만 접습니다.지갑의 가로, 세로 크기를 담은 정수 리스트 wallet과 지폐.. 2025. 11. 7.
[Programmers] Lv.1 | [PCCP 기출문제] 1번 / 동영상 재생기 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/340213 풀이class Solution { public String solution( String video_len, String pos, String op_start, String op_end, String[] commands ) { // "mm:ss" -> 초 단위 변환 int videoSec = Integer.parseInt(video_len.substring(0, 2)) * 60 + Integer.parseInt(video_len.substring(3, 5)); int curSec = Integer.parseInt(.. 2025. 11. 6.
[Programmers] Lv.1 | 유연근무제 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/388351 풀이class Solution { public int solution(int[] schedules, int[][] timelogs, int startday) { int n = schedules.length; // 직원 수 int answer = 0; // 상품 받을 직원 수 for (int i = 0; i = 60) { limitH += 1; limitM -= 60; } // 최종 인정 시간: 시*100 + 분 in.. 2025. 11. 6.
[Programmers] Lv.1 | 택배 상자 꺼내기 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/389478 풀이class Solution { public int solution(int n, int w, int num) { // 상자는 번호가 1번부터 시작하지만, 컴퓨터는 0부터 세기 때문에 // 계산하기 편하게 num - 1을 해줌 // 예: 1번 상자는 0번째로, 7번 상자는 6번째로 생각 int floor = (num - 1) / w; // num이 몇 번째 층(0층부터)에 있는지 int pos = (num - 1) % w; // 그 층 안에서 왼쪽부터 몇 번째 칸인지 (0부터 시작) // 층의 쌓이는.. 2025. 11. 6.