Coding Test 15

[Coding Test] 프로그래머스 2단계 - 괄호 회전하기

📚 문제  ✏️ 메모1. 큐를 사용해서 문자열 회전 시키기.2. 맨 앞의 괄호를 맨 뒤로 넣기.  [Java] 자바 Queue 클래스 사용법 & 예제 총정리Queue란? Queue의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. 큐는 데이터를coding-factory.tistory.com  3. 스택을 이용해서 짝 맞추기.(), {}, [] 를 확인하는 메서드가 필요함. ( 다음에 ) 가 있는지 { 다음에 } 가 있는지 [ 다음에 ] 가 있는지...4. 열린 괄호가 있으면 stack 에 넣고, 닫힌 괄호가 있을 때 스택의 제일 윗 부분과 같으면 스택에서 제거함. 5. 모든 문자열 검사 후 스택..

Coding Test 2024.12.10

[Coding Test] 프로그래머스 2단계 - 멀리 뛰기

📚 문제 ✏️ 메모  n = 1 일 때, 1 >> 1n = 2 일 때, (1, 1), (2) >> 2n = 3 일 때, (1, 1, 1), (2, 1), (1, 2) >> 3n = 4 일 때, (1, 1, 1, 1), (2, 1, 1), (1, 2, 1), (1, 1, 2), (2, 2) >> 5n = 5 일 때, (1, 1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 2, 1), (1, 2, 1, 1), (2, 1, 1, 1), (1, 2, 2), (2, 1, 2), (2, 2, 1) >> 8 1 2 3 5 8 .... 피보나치 수열  Java 피보나치(Fibonacci) 수열 제대로 풀기오늘은 알고리즘 단골 문제인 피보나치 수열 풀이법에 대해 알아보려고 합니다. 피보나치 수열은 면접 현..

Coding Test 2024.12.08

[Coding Test] 프로그래머스 2단계 - 예상 대진표

📚 문제 ✏️ 메모 1무조건 왼쪽 홀수, 오른쪽 짝수.1 - 2 가 붙으면 둘 중 누가 이기던 간에 이긴 참가자가 1번이 됨.3 - 4 가 붙으면 둘 중 누가 이기던 간에 이긴 참가자가 2번이 됨.5 - 6 이 붙으면 ~ 3번이 됨.7 - 8 이 붙으면 ~ 4번이 됨.3 참가자 > (3 + 1) / 2  = 27 참가자 > (7 + 1) / 2 = 4 a 와 b 가 차이가 1이 될 때까지 반복. import java.lang.Math;class Solution{ public int solution(int n, int a, int b) { int answer = 1; while ( Math.abs(a - b) != 1 ) { if (a % 2 == 0 )..

Coding Test 2024.12.04

[Coding Test] 프로그래머스 2단계 - 구명보트

📚 문제✏️ 메모 탐욕법- 현재 상황에서 가장 좋은 것(최선의 선택)을 고르는 알고리즘. - 매 순간 최선의 선택만을 하기 때문에 시간 절약이 가능함.  1. 선택절차 : 현재 상태에서 최적인 선택을 함. 이후에는 선택을 바꿀 수 없음. 2. 적절성 검사 : 선택한 항목이 문제의 조건을 만족시키는지 확인. 조건을 만족시키지 않으면 해당 항목 제외. 3. 해답 검사 : 모든 선택이 완료 되면, 최종 선택이 문제의 조건을 만족시키는지 확인.  // limit 를 보고 가장 최댓값을 찾음. // sort 를 해야 함. // 80 70 50 50 이렇게 될 텐데. // 100 - 80 하면 20 . >> 거꾸로 돌아서 20 이 있나 찾음 없으니까 // 80 자리를 바꿔주고, answer ++; // 50의 경..

Coding Test 2024.12.01

[Coding Test] 프로그래머스 1단계 - 소수 만들기

📚 문제✏️ 메모 3개씩 묶어 더해야 함. for 문을 3번 돌려서 더하는 방법으로 해보려 했음.  첫번째 시도.for (int i = 0; i  결과가 중복되어 나타남 왜?>>> 루프의 시작 인덱스가 0, 1, 2로 고정되어 있기 때문. 단순하게 0 1 2 부터 시작하면 되는 거 아니야? 라고 생각했으나... i=1, j=2, k=3로 이미 2 + 3 + 4 조합이 나왔지만,i=2, j=1, k=3에서 또 2 + 3 + 4 조합이 나옴.  반복문이 독립적으로 동작하여 중복된 조합이 발생. 배열의 인덱스가 서로 영향을 주도록 설정해서, 각 조합을 한 번만 만들 수 있도록 바꿔줌. 이전 값보다 큰 인덱스에서 시작하도록 각 루프의 범위를 조정.  🔎 문제해결package codingTest.week3;i..

Coding Test 2024.11.07

[Coding Test] 프로그래머스 1단계 - 모의고사

📚 문제  ✏️ 메모          1. 학생들의 루틴 배열 과 정답의 배열을 비교해서 맟줬으면 점수 + 1        2. 그 각각의 숫자를 봐서 가장 높은 점수를 확인.        3. 정답을 맞힌 학생 수가 몇 명일지 모르니 list 로 저장한 후 배열로 변환.        4. List 를 배열로 바꿔줌.  [Java] 배열을 List로, List를 배열로 변환하기배열을 List로 Arrays.asList() new ArrayList(Arrays.asList()) Collectors.toList() ArrayList를 배열로 toArray() - java.util.List 배열을 List로 1. Arrays.asList() 코드 import java.util.Arrays; import ja..

Coding Test 2024.11.07

[Coding Test] 프로그래머스 2단계 - 피로도

📚 문제  ✏️ 메모 1. 던전이 몇개가 있던지 간에, 모든 던전을 방문하는 경우의 수를 다 따져서 2. 최대로 탐험할 수 있는 던전의 수를 파악해서 return 해주어야 함. 3. 이때 초기 채력과 각 던전의 요구 체력, 체력 소모를 확인하여, 체력을 최대한 아껴 가장 많은 던전을 파악해야 함. 💡 DFS- 깊이 우선 탐색. 그래프 탐색 기법 중 하나 - 루트 노트에서 시작해서 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방법- 모든 노드를 방문하고자 하는 경우에 선택함 - 알고리즘을 구현할 때에는 어떤 노드를 방문했는지에 대한 여부를 반드시 확인해 주어야 한다. (검사하지 않을 경우 무한 루프에 빠질 수 있다.) - 재귀 함수와 스택 자료 구조를 이용하여 구현할 수 있다. (재귀함수 또..

Coding Test 2024.11.03

[Coding Test] 프로그래머스 1단계 - 기사단원의 무기

📚 문제✏️ 메모 약수의 개수 구하기제곱근 사용 [Java] 약수의 개수 구하기방법1 N의 약수 개수 구하는 방법을 생각했을 때 바로 떠오르는 방법은 N을 1부터 N까지의 숫자로 나눠 약수인지 판별하여 카운트를 해주는 방법이다. 코드로 구현해보면 아래와 같다. int N = 100000chwan.tistory.com 🔎 문제해결class Solution { public int solution(int number, int limit, int power) { int answer = 0; int[] diversors = new int[number]; // number를 보면서, number 까지의 모든 숫자들의 약수를 파악해야 함. // 약수를 구해서..

Coding Test 2024.10.31

[Coding Test] 프로그래머스 1단계 - 추억 점수

📚 문제 ✏️ 메모 Index 0 out of bounds for length 0왜 이런 오류가 생기는 고.... answer 배열이 빈 배열로 초기화되어 있기 때문...int[] answer = {}; ㅋㅋㅋㅋㅋㅋ너무 오랜만에 해서 이런 실수를.... int[] answer = new int[photo.length]; 로 바꿔줘야 함.   [JAVA]자바 프로그래밍에서 'Index 0 out of bounds for length 0' 오류 이해와 해결법안녕하세요, 프로그래밍 세계에 오신 것을 환영합니다! 오늘은 자바 프로그래밍에서 자주 마주치는 오류 중 하나인 ‘Index 0 out of bounds for length 0’에 대해 알아보겠습니다. 이 포스트를 통해 해wyatti.tistory.com..

Coding Test 2024.10.28

[Coding Test] 프로그래머스 1단계 - 푸드 파이트 대회

📚 문제 ✏️ 메모 f[0]은 항상 1.f[1]부터 봐야함.f[i] / 2 의 몫의 수 만큼 i 를 문자열에 담아야 함. food 배열이 끝났을 때 0 을 붙이고,0 이전에 나온 값을 뒤집어서 나열하기.  https://hianna.tistory.com/543  [Java] 문자열 거꾸로 뒤집기문자열을 거꾸로 뒤집는 방법 2가지를 소개합니다. 반복문 사용하기 StringBuffer / reverse() 메소드 사용하기 1. 반복문 사용하기 코드 public class StringReverse { public static void main(String[] args) { // 문자열 Shianna.tistory.com 🔎 문제해결 1. StringBuilder 사용  public static Str..

Coding Test 2024.10.24