반응형 코딩테스트/코딩테스트(Java)30 [코딩테스트] Programmers 입문 1. 프로그래머스 접속- https://programmers.co.kr/2. 회원가입 및 로그인 3. 상위 네비게이션의 코딩테스트 연습 탭 클릭4. 모든 문제 탭 클릭 후 난이도/언어 지정하여 문제 풀기- 코딩 기초 트레이닝 + 코딩 테스트 입문 == Level0 5. 문제 풀기- 우측 상단(C++ 위치)을 클릭하여 해당 언어 서낵- 좌측 문제를 보고 문제에 맞게 코드 작성- 코드 실행 버튼은 테스트 케이스 추가하기에 추가된 예시를 확인- 제출 후 채점하기는 문제풀이를 제출한 뒤 여러가지 케이스에 맞는지 채점후 통과 여부 표시- 통과하게 되면 다른 사람의 풀이를 무료로 볼 수 있음, 그렇지 않으면 점수를 제공하여 확인하여야함 (인터넷 검색시 문제이름 프로그래머스 언어로 검색하면 정답 및 해설이 있음).. 2025. 3. 17. [코딩테스트] Java - 학습로드맵 추천사이트1) Programmers2) Baekjoon Online Judge + Solved.ac3) 삼성 SW Expert Academy4) LeetCode 학습로드맵1) 언어 설정: C/C++/Java/Python/JavaScript2) 자료구조 라이브러리3) 알고리즘 정리4) 코딩테스트 문제 풀기- (난이도/유형)별 매일 2문제씩 6개월간 풀기(=총 240문제)- 매일 풀고 기록하기 2025. 3. 17. [코딩테스트] Java - 참고자료 자료구조/알고리즘- [교재] 쉽게 배우는 자료구조 with 자바(문병로)- [교재] Introduction To Algorithms(Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein)- [강의] Do it! 알고리즘 코딩테스트 - 핵심이론 강의(하루코딩)- [강의] Do it! 알고리즘 코딩 테스트 - 자바 편 문제풀이(이지스퍼블리싱) 코딩테스트- [교재] 코딩 테스트 합격자 되기: 자바 편(김희성)- [교재] 자바 알고리즘 인터뷰(박상길) 코딩테스트 사이트- [Site] Softeer- [Site] Programmers- [Site] Baekjoon Online Judge(Solved.ac)- [Site] SW Expert.. 2025. 3. 17. [코딩테스트] Java - 목차 1. 목차 2. 참고자료- Java 참고자료- 학습로드맵 3. 환경설정- Programmers 준비- Softeer 준비- LeetCode 준비 4. 기본- Java 기본 문법 - 자료구조(이론 요약)- 자료구조(추천문제)- 알고리즘(이론 요약)- 알고리즘(추천 문제) 5. 자료구조- 배열(Array)/연결리스트(LinkedList)- 스택(Stack)- 큐(Queue)- 덱(Deque)- 해시(HashMap)- 집합(Set)- 트리(Tree)- 힙(Heap)- 그래프(Graph) 6. 알고리즘- 재귀(Recursion): 피보나치 수, 하노이타워- 정렬(Sort): 버블, 선택, 삽입, 퀵, 병합, 계수- 시뮬레이션(Simulation)- 동적계획법(Dynamic Programming): LCS, L.. 2025. 3. 17. [코딩테스트] Java - 자료구조(Stack) 스택- 스택(stack): FILO의 자료구조 Stack더보기import java.util.Stack;Stack stack = Stack();stack.push(val);stack.pop();stack.peek(); 문제문제(번호)문제 링크풀이 2025. 3. 16. [코딩테스트] Java - 정렬(Sort) 정렬- 정렬(sort): 사용자가 정의한 순서로 데이터를 나열하는 것- 정렬이 필요한 이유: 원하는 데이터를 쉽게 찾기 위함- 정렬의 분류: 비교 정렬(comparison sort)와 비비교 정렬(non-comparison sort) (버블 정렬)- 버블 정렬(bubble sort): - 시간복잡도: (선택 정렬)- 선택 정렬(selection sort): - 시간복잡도: (삽입 정렬)- 삽입 정렬(insertion sort): 데이터의 전체 영역에서 정렬된 영역과 정렬되지 않은 영역을 나누고 정렬되지 않은 영역의 값을 정렬된 위치로 놓으면서 정렬- 시간복잡도: 최악 O(N^2) 최선 O(N)1. 최초에 정렬된 영역은 왼쪽 1개, 정렬되지 않는 영역을 나머지로 함. 현재 위치는 0으로 설정2. 현재 .. 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 - 자료구조(그래프) 그래프 용어 그래프 탐색DFS BFS 최단경로Dijkstra Bellman-Ford 2025. 2. 7. 이전 1 2 3 다음 반응형