반응형 분류 전체보기326 [코딩테스트] Java - 백트래킹 백트래킹- 백트래킹: 예제 2025. 2. 11. [코딩테스트] Java - 동적계획법(Dynamic Programming) 동적계획법- 동적계획법: 작은 부분 문제들을 해결하고 이를 활용하여 전체 문제를 해결하는 방법- 동적계획법의 조건: 최적 부분 구조 + 중복 부분 문제+) 최적 부분 구조: 작은 문제의 해결책의 합으로 큰 문제를 해결할 수 있는 구조+) 중복 부분 문제: 큰 문제를 나누었을 때 작은 문제가 여러 개 반복되는 문제 (동적계획법 풀이법)- 문제를 해결하는 해가 있다고 가정- 종료 조건을 설정- 점화식을 세움 (동적계획법 주요 기법)- 재귀- 반복문: 재귀문 대신 사용- 메모이제이션: 재귀 호출의 횟수를 줄임 (최장 증가 부분 수열)- 부분 수열: 주어진 수열 중 일부를 뽑아 새로 만든 수열. 각각의 원소는 전후 관계를 유지- 최장 증가 부분 수열(Long Increasing Subsequence): 부분 수.. 2025. 2. 11. [코딩테스트] Java - 시뮬레이션 시뮬레이션- 시뮬레이션: 문제에서 주어진 상황을 이해하고 이를 코드로 구현하는 과정. 구현에 중점 (시뮬레이션 풀이법)- 하나의 문제를 여러개로 분리- 예외처리시 독립함수로 구현 (시뮬레이션 주요 기법)- 행렬 연산: 덧셈, 뺄셈, 곱셈- 전치행렬- 좌표 연산: 2차원 행렬 사용. 방향 벡터(offset 사용)- 대칭연산: 좌우대칭, 상하대칭- 회전연산(90도): 시계방향, 반시계방향 예제(배열 뒤집기)- 좌우 뒤집기: A[i][j] = A[i][(N-1)-j]- 상하 뒤집기: A[i][j] = A[(N-1)-i][j] - 입력: arr(2차원 배열)- 출력: 2차원 배열더보기class Solution { private static int[][] solution(int[][] arr, int n) .. 2025. 2. 11. [Programmers] Lv1: 문자열 다루기 기본(12918) 문제- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12918 풀이더보기더보기class Solution { public boolean solution(String s) { boolean answer = true; if (s.length() != 4 && s.length() != 6) { answer = false; } else { for (int i = 0; i 2025. 2. 10. [Programmers] Lv1: 문자열 내림차순으로 배치하기(12917) 문제- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12917 풀이더보기더보기import java.util.*;class Solution { public String solution(String s) { String answer = ""; String[] strArray = s.split(""); Arrays.sort(strArray, Collections.reverseOrder()); for (int i = 0; i 2025. 2. 10. [Programmers] Lv1: 문자열 내 p와 y의 개수(12916) 문제- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12916 풀이더보기더보기class Solution { boolean solution(String s) { boolean answer = true; int pCount = 0; int yCount = 0; for (int i = 0; i 2025. 2. 10. [Programmers] Lv1: 문자열 내 마음대로 정렬하기(12915) 문제- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12915 풀이더보기 2025. 2. 10. [Programmers] Lv1: 두 정수 사이의 합(12912) 문제- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12912 풀이더보기더보기class Solution { public long solution(int a, int b) { long answer = 0; int minValue = a; int maxValue = b; if (a > b) { minValue = b; maxValue = a; } for (int i = minValue; i 2025. 2. 10. [Programmers] Lv1: 나누어 떨어지는 숫자 배열(12910) 문제- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12910 풀이더보기더보기import java.util.*;class Solution { public int[] solution(int[] arr, int divisor) { ArrayList answer = new ArrayList(); for (int i = 0; i Integer.compare(o1, o2)); if (answer.size() == 0) { return new int[]{-1}; } else { return answer.stream().mapToInt(Int.. 2025. 2. 10. [Programmers] Lv1: 같은 숫자는 싫어(12906) 문제- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12906 풀이더보기더보기import java.util.*;public class Solution { public int[] solution(int []arr) { ArrayList answer = new ArrayList(); answer.add(arr[0]); for (int i = 1; i 2025. 2. 10. 이전 1 2 3 4 ··· 33 다음 반응형