본문 바로가기

알고리즘26

백준 2309번 일곱 난쟁이(JAVA) 백준 2309번 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제설명 9개의 값들 중 7개의 값이 합하여 100이 되는 경우의 수를 출력 하면 되는문제 > 브루트포스 알고리즘 접근 1. 9개중 7개를 뽑아서 100이 되야함 -> 9개중 2개를 뽑는것 과 같음. 2. 9개의 합에서 100을 뺀 값이 선택한 두개의 값이랑 같다면 해당 값을 0 으로 변경후 정렬(오름차순을 위해) 3. 인덱스 2번부터 9번까지 반복문을 돌며 출력. 코드 import jav.. 2023. 1. 16.
(LEVEL 1)프로그래머스 - 숫자 짝꿍(JAVA) 문제 입출력 예 풀이. 1. X,Y에 포함된 0~9의 숫자의 개수를 세기 위한 배열을 각각 선언 2. X,Y의 크기만큼 반복문을 돌면서 0~9까지 해당하는 인덱스에 값을 1씩 추가 (char형의 숫자에 '0' 의 문자를 빼면 아스키코드 계산으로 숫자로 계산됨) 3. 이후 가장 큰 수를 나타내야하므로 역순으로 9~0 까지 반복문을 돌며 x,y 중 더 개수가 적은 수 만큼 반복하며 answer에 문자 추가 ex) X - "100" , Y - "123450" 일 때 X는 '0'이 2개이고 '1'이 1개 Y는 0~5까지 각 1개씩 이므로 더 개수가 적은 수 만큼 반복해서 최종적으로 "10" 이된다. 4.마지막으로 만약 같은 값이 없을시 -1을 반환, 첫문자가 0일시 0이외에 숫자는 같은값이 없고, 0이 2개씩 .. 2023. 1. 15.
(LEVEL 1)프로그래머스 - 햄버거 만들기(JAVA) 문제 입출력 예 풀이. 1. list를 생성후 ingredient의 길이만큼 반복문을 돌며 값을 하나씩 넣는다. 2. 값을 넣으면서 길이가 4이상 일때 뒤쪽에서부터 4개의 값을 1,2,3,1인지 확인 3. 확인후 1,2,3,1이 차례대로 들어와있다면 answer값을 증가시킨후 해당 값들 삭제 코드 import java.util.*; class Solution { public int solution(int[] ingredient) { int answer = 0; ArrayList list = new ArrayList(); for(int i=0;i=4 && list.get(list.size()-4) == 1 && list.get(list.size()-3) == 2 && list.get(list.size()-.. 2023. 1. 14.
(LEVEL 1)프로그래머스 - 가장 가까운 같은 글자(JAVA) 문제 입출력 예 풀이. 1. 알파벳 갯수 만큼 alpha 배열 선언 (알파벳이 나온적이 있는지 체크하기 위해) 2. 글자의 위치를 저장하기 위한 idx배열 선언 3. s의 길이만큼 반복문을 돌며 한글자씩 비교 나온적이 있는지 먼저 체크(alpha배열의 값 확인 [0] -> a, [1] -> b ... ) 나온적이 없다면(값이 0이라면) answer에 -1 추가하고 해당 alpha배열에 값을 0이 아닌 다른값으로 변환후 해당 글자의 위치를 idx배열에 저장 나온적이 있다면 해당 인덱스에서 최근글자의 인덱스를 빼서 저장하고 해당 글자 위치 최신화 코드 class Solution { public int[] solution(String s) { int [] alpha = new int[26]; int [] id.. 2023. 1. 12.