Algorithm/CodingTest 23

[Programmers] 2024 KAKAO WINTER INTERNSHIP 가장 많이 받은 선물 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가장 많이 받은 선물이라는 문제 Java로 풀이하겠습니다. 이 문제는 선물을 주고받은 기록을 토대로 다음 달에 누가 선물을 많이 받을지 예측하는 문제입니다. 규칙은 다음과 같습니다. 두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다. 두 사람이 선물을 주고받은 기록이 없거나 주고받은 선물의 수가 같다면, 선물 지수가..

[Baekjoon] 1094번 막대기 (java)

https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 막대기라는 문제 java로 풀이하겠습니다. 이 문제는 길이가 64cm인 막대를 사용하여 길이가 Xcm인 막대를 만들기 위해 필요한 최소 막대 개수를 계산하는 문제입니다. 저는 아래와 같이 풀이하였습니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = ne..

[Programmers] 과일 장수(Java)

https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 과일 장수라는 문제 Java로 풀이하겠습니다. 이 문제는 과일 장수가 판매하는 사과에 대한 최대 이익을 계산하는 문제입니다. 주어진 조건은 다음과 같습니다. 사과는 1점부터 k점까지 점수로 분류됩니다. 여기서는 최상품의 사과의 점수입니다. 사과를 m 개씩 담아 상자에 판매하며, 각 상자의 가격은 상자에 들어있는 사과 중 최저 점수 p에 따라 결정됩니다. 따라서 한 상자의 가격은 p*m이 됩니다...

[Programmers] PCCE 기출문제 10번 / 데이터 분석

https://school.programmers.co.kr/learn/courses/30/lessons/250121https://school.programmers.co.kr/learn/courses/30/lessons/250121 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 데이터 분석이라는 문제 Java로 풀이하겠습니다. 문제는 물품 데이터를 처리하는 문제입니다. 주어진 이차원 정수 리스트 data에는 물품의 코드(code), 제조일(date), 최대 수량(maximum), 현재 수량(remain)이 포함되어 있습니다. 그리고 세 가지 값이 주어집니다..

[Programmers] PCCE 기출문제 9번 / 이웃한 칸

https://school.programmers.co.kr/learn/courses/30/lessons/250125?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이웃한 칸이라는 문제 Java로 풀이하겠습니다. 이 문제는 주어진 2차원 격자 보드에서 특정 위치 (h, w)의 칸과 같은 색깔로 색칠된 이웃한 칸의 개수를 찾는 문제입니다. 이웃한 칸은 위, 아래, 왼쪽, 오른쪽 방향에 위치한 칸을 의미합니다. 주어진 위치에서 상, 하, 좌, 우로 이동하며 이웃한 칸의 색상을 확인합니다. 이웃한 칸의 색상이 현재 위치의 칸과 같으면 개..

[Baekjoon] 1173번 운동 (Java)

https://www.acmicpc.net/problem/1173 1173번: 운동 첫째 줄에 다섯 정수 N, m, M, T, R이 주어진다. www.acmicpc.net 운동이라는 문제를 Java로 풀이하겠습니다. 이 문제는 영식이가 운동을 하는데 걸리는 최소 시간을 계산하는 문제입니다. 각 분에 대해서 영식이가 운동을 선택하는 경우와 휴식을 선택하는 경우를 고려하여 최소 시간을 계산합니다. 문제에서 주어진 입력 값은 아래와 같습니다. N : 운동하려는 총 시간 m : 초기 맥박 M : 최대 맥박 T : 운동으로 증가하는 맥박 R : 휴식으로 감소하는 맥박 초기에 영식의 맥박은 m이며, 매 분마다 운동을 선택하면 T만큼 맥박이 증가하고, 휴식을 선택하면 R만큼 맥박이 감소합니다. 단, 맥박은 m 이상이..

[Baekjoon] 1049번 기타줄 (Java)

https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 기타줄이라는 문제 Java로 풀이하겠습니다. 이 문제는 N개 이상의 기타 줄을 최소 비용으로 구입하는 방법을 찾는 문제입니다. 가장 적은 비용으로 구매하는 방법은 다음과 같습니다. 패키지로 구입하는 것이 낱개로 구입하는 것보다 이득이면 패키지로만 구입합니다. 낱개로 구입하는 것이 패키지로 구입하는 것보다 이득이면 낱개로만 구입합니다. 패키지와 낱개를 조합하여 구입하는 것이 이득이면 패키지와 낱..

[Baekjoon] 1021번 회전하는 큐 (Java)

https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 회전하는 큐 문제 Java로 풀이하겠습니다. 이 문제는 큐에서 원소를 뽑아내는 연산을 최소화하기 위해 어떻게 큐의 상태를 조작해야 하는지를 찾는 문제로 보입니다. 다음과 같은 알고리즘으로 문제를 해결할 수 있습니다. 큐의 첫 번째 원소를 뽑아내는 연산을 수행합니다. 원하는 위치에 도달할 때까지 큐를 왼쪽으로 이동하며 연산을 수행합니다. 이때, 왼쪽 이동 연산 횟수가 원하는 위치에 도달하기 위한..

[Baekjoon] 1026번 보물 (Java)

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 보물이라는 문제 자바로 풀이하겠습니다. 주어진 문제는 두 배열 A와 B를 이용하여 S를 정의하고, S의 값을 최소로 만들기 위해 A배열의 순서를 재배열하는 것입니다. N의 크기가 비교적 작기 때문에 간단한 정렬 알고리즘을 사용하여 해결할 수 있습니다. 다음과 같이 풀이하였습니다. import java.io.BufferedReader; import java.io.IOException; imp..

[Programmers] Level.1 체육복 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 체육복이라는 문제 Java로 풀이하겠습니다. 이 문제는 그리디 알고리즘을 사용하여 풀 수 있습니다. 그리디 알고리즘(Greedy Algorithm)은 매 순간마다 가장 좋은 선택을 하는 알고리즘입니다. 다시는 되돌아갈 수 없는 결정을 순간마다 내리는 것이 특징이에요. 이런 선택들이 모여 전체적으로 최적인 해를 찾아내는 것을 목표로 합니다. 문제를 해결하기 위해서는 여벌 체육복이 있는 학생과 도난당..