반응형 코딩테스트/코딩테스트(Java)14 [코딩테스트] Java - 백트래킹 백트래킹- 완전탐색: dfs, bfs처럼 데이터를 전부 확인하는 방법- 백트래킹(backtracking): 가능성이 없는 곳에서는 되돌아가고, 가능성이 있는 곳을 탐색하는 알고리즘- 유망함수(promising function): 특정 조건을 정하는 함수 (백트래킹 풀이법)1. 유효한 해의 집합을 정의2. 정의한 집합을 그래프로 표현3. 유망함수 정의4. 백트래킹을 통한 해 탐색 (부분 집합 합)- 부분 집합 합(sum of subset): 1부터 N까지 숫자르 조합했을 때 합이 K가 되는 조합을 찾는 문제- 유망함수1: 현재 조합으로 합이 K일 경우 탐색 중지- 유망함수2: 해당 숫자를 조합하여 합이 K 이상이 되면 탐색 중지 (N-Queen)- N-Queen: 체스의 퀸을 N x N 체스판에 N개 배치.. 2025. 2. 11. [코딩테스트] Java - 동적계획법(Dynamic Programming) 동적계획법- 동적계획법: 작은 부분 문제들을 해결하고 이를 활용하여 전체 문제를 해결하는 방법- 동적계획법의 조건: 최적 부분 구조 + 중복 부분 문제+) 최적 부분 구조: 작은 문제의 해결책의 합으로 큰 문제를 해결할 수 있는 구조+) 중복 부분 문제: 큰 문제를 나누었을 때 작은 문제가 여러 개 반복되는 문제 (동적계획법 풀이법)- 문제를 해결하는 해가 있다고 가정- 종료 조건을 설정- 점화식을 세움 (동적계획법 주요 기법)- 재귀- 반복문: 재귀문 대신 사용- 메모이제이션: 재귀 호출의 횟수를 줄임 (최장 증가 부분 수열)- 부분 수열: 주어진 수열 중 일부를 뽑아 새로 만든 수열. 각각의 원소는 전후 관계를 유지- 최장 증가 부분 수열(Long Increasing Subsequence): 부분 수.. 2025. 2. 11. [코딩테스트] Java - 탐욕법(Greedy) 탐욕법- 탐욕법(greedy): 문제 해결 과정에서 결정 순간마다 눈앞에 보이는 최선의 선택을 하며 선택을 번복하지 않음. 부분적으로 최적해를 구함- 그리디의 최적해 보장 조건: 최적 부분 구조 + 그리디 선택 속성+) 최적 부분 구조(optimal substructure): 부분해를 푸는 과정이 최적해를 구하는 과정과 일치+) 그리디 선택 속성(greedy selection property): 선택 과정이 다른과정에 영향을 주지 않음 (그리디 풀이법)- 지역의 최적해 구하기- 최적 부분 구조를 만족하는지 확인- 그리디 선택 속성을 만족하는지 확인 (최소 신장 트리)- 신장 트리(spanning tree): 모든 정점이 간선으로 연결되어 있고 간선 개수가 정점 개수보다 하나 적은 그래프- 최소 신장 트리.. 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. [코딩테스트] Java - 알고리즘 추천 문제 백트래킹더보기문제(문제번호)문제 링크풀이피로도(87946)문제 링크풀이N-Queen(12952)문제 링크풀이양궁 대회(92342)문제 링크풀이외벽 점검(60062)문제 링크풀이사라지는 발판(92345)문제 링크풀이모음사전(84512)문제 링크풀이정렬더보기문제(문제번호)문제 링크풀이문자열 내 마음대로 정렬하기(12915)문제 링크풀이정수 내림차순으로 배치하기(12933)문제 링크풀이K번째 수(42748)문제 링크풀이가장 큰 수(42746)문제 링크풀이튜플(64065)문제 링크풀이지형 이동(62050)문제 링크풀이전화번호 목록(42577)문제 링크풀이파일명 정렬(17686)문제 링크풀이H-Index(42747)문제 링크풀이시뮬레이션더보기문제(문제번호)문제 링크풀이이진 변환 반복하기(70129)문제 링크풀이롤.. 2025. 2. 9. [코딩테스트] Java - 알고리즘 백트래킹코드더보기더보기ㅇ 예시더보기더보기ㅇ 정렬코드더보기더보기ㅇ 예시더보기더보기ㅇ 시뮬레이션코드더보기더보기ㅇ 예시더보기더보기ㅇ 동적계획법코드더보기더보기ㅇ 예시더보기더보기ㅇ 그리디코드더보기더보기ㅇ 예시더보기더보기ㅇ 2025. 2. 9. [코딩테스트] Java - 자료구조 추천 문제 배열(프로그래머스)더보기- Lv1: 두 개 뽑아서 더하기(68644) / 두 개 뽑아서 더하기(68644) 해설- Lv1 : 모의고사(42840) / 모의고사(42840) 해설- Lv2 : 행렬의 곱셈(12949) / 행렬의 곱셈(12949) 해설- Lv1 : 실패율(42889) / 실패율(42889) 해설- Lv2 : 방문 길이(49994) / 방문 길이(49994) 해설 - Lv 0 : 배열의 평균값(120817) / 배열의 평균값(120817) 해설- Lv 0: 배열 뒤집기(120821) / 배열 뒤집기(120821) 해설- Lv 2: N^2 배열 자르기(87390) / N^2 배열자르기(87390) 해설- Lv 1: 나누어 떨어지는 숫자 배열(12910) / 나누어 떨어지는 숫자 배열(12910).. 2025. 2. 9. [코딩테스트] Java - 자료구조 배열- 배열: 같은 자료형의 묶음. 크기가 고정- ArrayList: 같은 자료형의 묶음 크기가 동적 코드더보기더보기배열/* 1차원 배열 */type[] arrName = new type[count]; // 배열 선언 및 0으로 초기화type[] arrName = {value1, ...}; // 배열 선언 및 초기화arrName[index]; // 배열값 조회arrName.length; // 배열의 길이Arrays.sort(arrName); // 배열의 데이터를 정렬Arrays.toString(arrName); // 배열의 모든 데이터를 String으로 변환/* 2차원 배열 */ type[][] arrName = new type[rows][columns]; // 배열 선언 및 0으로 초기화type[][].. 2025. 2. 9. [코딩테스트] Java - 기본문법 변수와 연산자변수와 자료형- 프리미티브 타입(Primitive Type): int, long, float, double- 레퍼런스 타입(Reference Type): Integer, Long, Float, Double- 레퍼런스 타입은 참조형 변수이기에 프리미티브 타입보다 연산속도가 느림- 정수형: short, int, long- 실수형: float, double- 논리형: boolean- 문자형: char더보기더보기변수 선언type varName = value;변수 예시더보기더보기int iVar = 10;long lVar = 10;float fVar = 10.0f;double dVar = 10.0;System.out.println(iVar);System.out.println(lVar);System.ou.. 2025. 2. 9. [코딩테스트] Softeer 입문 1. Softeer 접속- https://softeer.ai/ 2. 회원가입 및 로그인- 우측 상단의 로그인/회원가입 클릭- 로그인 페이지에서 회원가입 클릭- 회원가입 절차에 따라 진행 3. Softeer 로그인- Softeer 로그인 페이지에서 아이디와 비밀번호를 입력하여 로그인 4. 코딩테스트 문제- Softeer 메인 페이지의 상단 탭의 Challenge의 연습문제 클릭- 연습문제 페이지의 우측 상단 필터보기에서 난이도별 문제 확인 5. 문제 풀기- 중앙에서 문제 풀이에 사용할 프로그래밍 언어 설정- 공식문서 버튼을 클릭하여 참고 언어별 주요 클래스와 메서드 참고- 좌측 문제를 보고 문제에 맞게 코드 작성- 코드 실행 버튼은 테스트 케이스 추가하기에 추가된 예시를 확인- 제출 버튼을 클릭하여 최종 .. 2025. 2. 9. 이전 1 2 다음 반응형