본문 바로가기

코딩테스트6

(LEVEL 1)프로그래머스 - 같은 숫자는 싫어(JAVA) 문제 입출력 예 풀이. 1. 값을 담을 Stack을 2개 선언한다. 2. 첫 Stack에 arr의 첫번째 값을 넣어두고 인덱스 1부터 길이만큼 반복문을 돈다. >> 반복문을 돌며 stk에 제일 위에있는 값이 현재 값(arr[i]) 과 같지 않을때만 값을 추가. 3. size에 현재 stk의 size를 저장해놓음 4. 값을 반환할 answer의 크기를 size만큼 선언 5. size크기 만큼 반복문을 돌며 stk에 저장된 값들을 하나씩 두번째 스택인 temp에 저장 6. temp저장된 값들을 다시 하나씩 answer에 저장 --> 스택을 두개 만들어서 진행한 이유는 스택은 LIFO의 특성을 가지고있어 stk에 저장된 값을 꺼낼시 순서가 반대로 되어 한번더 스택에 진행하였음. 풀기는 했으나 풀이 방법이 효율.. 2023. 1. 30.
(LEVEL 1)프로그래머스 - 로또의 최고 순위와 최저 순위(JAVA) 문제 입출력 예 풀이. 1. 크기만큼 반복문을 돌며 lottos에 저장된 값과 win_nums에 저장된값을 하나씩 비교하며 0의 개수, 일치하는 개수를 따로 저장. 2. 기존 로또와 다르게 등수는 1등-6개/2등-5개/3등-4개/4등-3개/5등-2개/그외 6등으로 이걸 식으로 계산해보면 (7 - 맞춘개수)를하면 등수가 된다. 예외로 맞춘개수가 없을경우 최저순위는 6등이므로 min(7-맞춘개수,6)을 통해 최저순위를 6등으로 치환해준다. 3. 맞춘개수와 0의 개수에 따라서 최고순위(7-맞춘개수+0의개수) 와 최저순위(7-맞춘개수) 를 따로 저장, 코드 class Solution { public int[] solution(int[] lottos, int[] win_nums) { // 1등-6개 2등-5개 3.. 2023. 1. 18.
백준 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. 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.