본문 바로가기

Algorithm94

[알고리즘 문제풀이] 백준 2613 숫자구슬 (JAVA코드) https://www.acmicpc.net/problem/2613 2613번: 숫자구슬 첫째 줄에 구슬의 개수 N과 그룹의 수 M이 주어진다. 둘째 줄에는 각 구슬이 적혀진 숫자가 왼쪽부터 차례로 주어진다. N은 300 이하의 자연수, M은 N이하의 자연수이며, 구슬에 적혀진 숫자는 100 www.acmicpc.net import java.util.*; import java.io.*; /** * 1. 이분탐색으로 최대값의 크기를 지정 * * 2. 그에 따른 그룹으로 나누기(각 그룹별 개수 체크) * * 3. 최대값이 최소가 될 때 출력 */ public class 숫자구슬 { public static int n,m, result; public static int[] groupList, beads; pub.. 2022. 3. 16.
[알고리즘 문제풀이] 프로그래머스 - 교점에 별 만들기 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/87377 코딩테스트 연습 - 교점에 별 만들기 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr /** 1. 각 선들이 만나는 지점을 교점들을 저장 2. 최소, 최대 좌표를 확인.. 2022. 3. 13.
[알고리즘 문제풀이] 프로그래머스 - 구명 보트 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr /** 1. 2명씩 탑승 가능 2. 구명보트 무게 제한 100kg 3. 구명 보트 최대한 적게 사용 4. 정렬 배열에 투포인터로 처리. 5. 그리디로 가장 작은 몸무게와 가장 큰 몸무게 탑승 처리 **/ import java.util.*; class Solution { public int solution(int[] people, int.. 2022. 3. 12.
[알고리즘 문제풀이] 프로그래머스 - 멀쩡한 사각형 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr /** 1. 가로와 세로의 최소 공약수를 찾기(유클리드 호제법 사용) 2. 공약수로 나눈 가로와 세로의 직사각형이 공약수만큼 있음 3. 가로와 세로 직사각형에서 사용불가능한 사각형의 개수는 (가로+세로-공약수) 4. 전체개수 - 사용불가능한 사각형의 개수(가로+세로-공약수) **/ class Solution { public long s.. 2022. 3. 11.
[알고리즘 문제풀이] 프로그래머스 - 삼각 달팽이 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 리팩토링 코드 /** 1. n*n배열 생성(최종 정답 배열은 n*(n+1)/2) 2. 높이 증가하면서 0이거나 배열안이면 +1씩 증가된 숫자 넣기 3. 그다음 가로방향 증가(0이거나 배열안이면) 4. 가로 -1 높이 -1 하면서 움직이기 5. 2~4번 반복하며 진행 **/ class Solution { public int[] solution(int n) { int[][.. 2022. 3. 9.
[알고리즘 문제풀이] 프로그래머스 - n진수게임 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr /** 1. t개를 고를때까지 돌 수 있을 만큼 숫자를 n진수로 변환 2. 그중에서 p번마다 고르기 3. 반환 **/ import java.util.*; class Solution { public String solution(int n, int t, int m, int p) { StringBuilder sb = new StringBuilder().. 2022. 3. 8.
[알고리즘 문제풀이] 프로그래머스 - 기능개발 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr /** 1. queue에 작업 퍼센트와 속도를 객체로 큐에 넣기 2. 하루 지날때마다 전체 객체의 속도에 따라 작업 퍼센트 증가 3. 만약 첫번째 원소가 100퍼를 넘거나 같으면, 큐를 돌면서 100퍼 넘은건 다 같이 빼내기 4. 개수 체크하여 정답리스트에 담기 5. 2~4번 반복하여 정답리스트 구하기 6. 정답리스트 배열로 반환 **/ import ja.. 2022. 3. 7.
[알고리즘 문제풀이] 프로그래머스 - 더 맵게 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 우선순위 큐 사용 풀이 /** 1. 우선순위 큐로 음식을 넣고, 2. 큐의 사이즈가 2이상이면서 가장 앞의 원소가 k보다 적을 때 2개를 빼서 더해서 넣기 2-1) 첫번째 원소 + 두번째원소*2 3. 큐의 맨 앞의 원소가 k보다 같거나 크면 섞은 횟수 반환 4. 불가능하면 -1 반환 **/ import java.util.*; class Solutio.. 2022. 3. 7.