CodingTest 123

[프로그래머스 / Java] Lv.1 이상한 문자 만들기

Question https://school.programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.krAlgorithm주어진 문자열 s를 split() 함수를 사용하여 배열로 변환한다.s.split("") -> 문자열의 모든 문자 사이를 기준으로 잘라서 하나하나 분리된 문자 배열로 만든다단어가 짝수 번째인지 홀수 번째인지 판단하기 위해 변수 idx를 선언한다.for문을 사용해 짝수인 경우 대문자, 홀수인 경우 소문..

[프로그래머스 / Java] Lv.2 뒤에 있는 큰 수 찾기

Question https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm이전에 본 값들의 인덱스를 저장해두고, 더 큰 수가 나올 때까지 비교해야 하므로 스택을 사용한다.배열을 왼쪽부터 오른쪽으로 순회하면서, 현재 숫자가 스택 top 인덱스의 값보다 크면 answer 값을 갱신한다.아직 이 인덱스의 값보다 큰 수를 못 찾았은 경우, 뒤에서 더 큰 수를 만날 때까지 대기시키기 위해 스택에 보관한다.배열 순회가 끝난 후, 스택에 남아 있는 인덱스들은 더 큰 수를 못 만난 것이므로 answer를 -..

[프로그래머스 / Java] Lv.2 할인 행사

Question https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm목표로 하는 할인 정보(want + number)와 실제 할인 정보(discount)가 일치하는지 비교하기 위해, HashMap을 사용한다.목표로 하는 할인 정보(want + number)를 저장하는 HashMap을 만든다. ex. {"apple": 3, "banana": 2, ...}할인 정보를 10일 단위로 슬라이딩 윈도우 방식으로 탐색한다.discount 배열에서 연속된 10일 구간씩 검사한다.ex. discount..

[프로그래머스 / Java] Lv.2 예상 대진표

Question https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithmn을 사용하지 않고 문제를 풀 수 있다.a와 b의 번호가 같아지면, 이전 라운드에서 같은 경기를 했다는 의미이므로 while문을 사용해 a와 b가 다른 경우에만 round를 1씩 증가시켜준다.Codeclass Solution{ public int solution(int n, int a, int b) { int round = 0; // 현재 라운드 수를 저장 (처음은 0) /..

[프로그래머스 / Java] Lv.2 점프와 순간 이동

Question https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithmwhile문을 사용해 n에서 0까지 거꾸로 내려가며 "이동 방법을 추적" -> Top-down 방식n이 짝수인 경우, 순간이동으로 왔다고 판단 -> 건전지 사용 Xn이 홀수인 경우, 점프로 왔다고 판다 -> 건전지 사용 + 1예시단계nn % 2ans설명1600순간이동으로 왔다고 판단2311점프로 왔다고 판단3112점프로 왔다고 판단40-2종료Codepublic class Solution { public int ..

[프로그래머스 / Java] Lv.1 음양 더하기

Question https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithmfor문과 if문을 사용해 signs가 false인 경우, signs 인덱스와 같은 absolutes 배열 값을 빼준다.signs[i] == false인 경우, absolutes[i] -= 1answer에 값을 저장한다.Code💡나의 풀이class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; ..

[프로그래머스 / Java] Lv.1 정수 내림차순으로 배치하기

Question https://school.programmers.co.kr/learn/courses/30/lessons/12933 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithmn의 각 자릿수를 큰것부터 작은 순(내림차순)으로 정렬하기 위해 주어진 long 타입의 n을 String.valueOf(n)을 통해 자연수를 문자열로 바꾸고, toCharArray()를 통해 char 타입의 문자 배열로 변환하다.변환된 문자 배열을 Arrays.sort()를 사용해 우선 오름차순으로 정렬한다.StringBuilder()를 사용해 배열을 사용해 정렬된 배열을 하나의 문자열로 합친다. ❓왜 StringBuild..

[프로그래머스 / Java] Lv.2 괄호 회전하기

Question https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm여는 괄호가 나올 때마다 저장해두고, 닫는 괄호가 나왔을 때 짝이 맞는지 가장 최근의 여는 괄호와 비교하여 유요한 괄호 구조인지 검사하기 위해서 스택을 사용한다.주어진 문자열 s를 문자 배열로 변환(s.toCharArray)한 후 향상된 for문을 사용해 한 글자씩 순회한다.여는 괄호인 경우 : 순회하고 있는 문자(c) 값을 스택에 넣어준다.(stack.push(c))닫는 괄호인 경우 : 마지막에 넣은 괄호랑 매칭이 되는지..

[프로그래머스 / Java] Lv.1 삼총사

Question https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm주어진 배열 number에서 3개의 숫자 합이 0이 되는 경우의 수를 구해야한다.3중 for문과 if문을 활용해, 배열의 첫번째 값부터 다음 값과 더하여 0이 되는 경우를 찾는다.Codeclass Solution { public int solution(int[] number) { int answer = 0; for(int i = 0; i 💡프로그래머스 다른 사람의 풀이cla..

[프로그래머스 / Java] Lv.2 더 맵게

Question https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSolution가장 작은 값을 반복적으로 빠르게 꺼내야 하므로 최소 힙(PriorityQueue)을 사용한다.모든 음식의 스코빌 지수를 최소 힙(PriorityQueue)에 초기 세팅한다.이렇게 하면 최소값부터 자동 정렬된 상태가 유지된다.음식 섞기 로직첫 번째 + (두 번째 × 2) 공식을 사용하여 새 스코빌 지수 생성이 값을 다시 PriorityQueue에 삽입섞은 횟수 증가가장 작은 값이 K 이상이 될 때까지 반복한다.음식이 2개 미..