문제 분석 N의 범위가 1~100까지 이므로 int형, long형과 같은 숫자형으로 담는 것 불가 문자열형태 -> 문자 배열로 변환 -> 문자 배열값 순서대로 숫자형으로 변환 -> 더하기 > 손으로 풀기 String "1234" -> char[]로 변환(toCharArray): '1','2','3','4' -> 1,2,3,4 -> 10 > 슈도코드 ...

문제 분석(점수/M)\*100의 의미(점수/M) -> 최대점수M이 만점일 때, 이 점수가 차지하는 비율\*100 -> 만점을 100점으로 바꿨을때, 이 점수는 몇점인가?손으로 풀기점수를 1차원 배열에 저장최고점수max 와 점수의 총합sum 구하기평균값 구하기 : 총합
문제 분석수의 개수와 합을 구해야하는 횟수는 최대 100,000⭐질의 1개당 최대 100,000번의 연산\*최대 질의 수 100,000 = 10,000,000,000최악의 경우 1억회 이상의 연산수행, 1초 이상의 수행 시간이 필요함손으로 풀기합배열 공식: Si = S

문제 분석N의 최댓값이 매우 크므로, O(nlogn)의 시간복잡도 알고리즘을 사용하면 제한시간 초과따라서, 투포인터(시작인덱스, 종료인덱스) 사용(시간복잡도: N)시간복잡도손으로 풀기sum(start~end까지 합)을 N과 비교해서같으면, count++sum <

📌시간복잡도란?입력 크기 N이 커질 때, 연산 횟수가 얼마나 빨리 늘어나느냐N ≤ 10,000,000 (천만)이 말은:10번 반복 ❌1,000번 반복 ❌10,000,000번 반복 ✔️ (이게 마지노선)📌 O(n log n)이란?N번 반복하는데그 안에서 log N 만
문제 분석재료의 개수 N(1~15,000),갑옷을 만드는데 필요한 수 M(1~10,000,000)이 주어졌을때 몇개의 갑옷을 만들 수 있는지?크기를 비교하므로 정렬(2 7 4 1 5 3 -> 1 2 3 4 5 7)N의 최대 범위가 15,000이므로 O(nlongn)시간

문제 분석손으로 풀기슈도코드 작성정답
문제 분석이중반복문 사용문자 - 'a' 하면 숫자로 변환가능 ex. a-'a' = 0 ex. b-'a' = 1정답

후입선출(LIFO)연산push : top 위치에 새로운 데이터 삽입pop : top 위치의 데이터 삭제 및 확인peek : top 위치 데이터를 단순 확인깊이 우선 탐색(DFS), 백트래킹 종류재귀 함수 알고리즘 원리와 유사선입선출(FIFO)연산rear : 가장 끝 데

문제 분석스택: 후입선출스택에 넣는 값은 오름차순 정렬이어야 한다.손으로 풀기현재 수열 값이 자연수보다 크거나 같을 때까지 자연수를 +1하며 스택에 push.push가 끝나면 수열을 출력하기 위해 마지막 1회만 pop.슈도코드 작성정답
문제 분석N장의 카드가 있음. 1번 카드는 가장 위, N번 카드가 가장 아래.가장 위에 있는 카드 버리기.그 다음 가장 위에 있는 카드를 가장 아래에 있는 카드 밑으로 옮긴다.카드가 1장이 될때까지 반복 -> 남는 카드 출력큐(선입선출) 사용정답

문제분석⭐지문파악 중요1\. 절댓값 힙(자료구조) 구현하기 1) 배열에 정수x(x!=0)를 넣는다 2) 배열에서 절댓값이 가장 작은 값을 출력한 후 그 값을 배열에서 제거, 절댓값이 가장 작은 값이 여러개면 그중 가장 작은 수를 출력하고 그 값을 배열에서 제거.
정답
정답
정답

핵심이론두 인접한 데이터의 크기를 비교해 정렬하는 방법.시간복잡도는 O(n²)로 느린편.한번 돌때 N번의 시간복잡도를 갖는 루프를 N번 돈다. 따라서, n \* n= n²특정 루프에서 swap이 없다면 그 영역 뒤의 데이터는 모두 정렬되었음 -> 종료

손으로 풀어보기 슈도코드정답

문제분석선택정렬을 통해 내림차순 정렬손으로 풀어보기String 값으로 2143을 받아 SubString()으로 int 배열에 저장선택정렬 알고리즘으로 내림차순 정렬(내림차순이므로 최댓값 찾아 기준자리와 swap)슈도코드정답import java.io.BufferedRea
정답public class Main { public static void main(String\[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReade

핵심이론그래프 완전 탐색 기법 중 하나.그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행.재귀함수를 이용하므로 스택 오버플로(함수 호출 등이 너무 깊어져 호출 스택 메모리를 초과해 프로

문제분석노드 최대 개수가 1,000이므로 시간복잡도 n² 이하의 알고리즘 사용가능연결 요소는 엣지로 연결된 노드의 집합이므로, 한번의 DFS가 끝날 때까지 탐색한 모든 노드의 집합 = 하나의 연결 요소손으로 풀어보기인접리스트, 방문배열 생성임의의 시작점에서 DFS 수행
정답 및 해설
💡주의graph행=세로N 구분행이동 : {-1, 1, 0, 0}; 열이동 : {0, 0, -1, 1}; 범위체크 (0 ~ N과 M 이내의 범위)정답
핵심DFS로 내려가면서, 내가 어디서 왔는지 = 부모노드 기록정답
문제를 해결하기 위한 탐색 기법문제를 해결할 수 있는 모든 경로를 탐색하면서 선택한 경로가 유효하지 않거나 조건에 만족하는 해를 찾지 못할 경우, 이전 단계로 되돌아가 다른 경로를 시도
문제 문석가능한 선택지 탐색 (1,2,3,4)작은 수부터 탐색 -> 사전순 출력 조건 만족유효성 검사 및 가지치기같은 수는 여러번 사용할 수 없기 때문정답
2003 (연속 구간, 투포인터)2559 (연속 구간, 투포인터)3273 (임의 두 수, 정렬 + 양 끝 투포인터)
🔑 핵심 개념10808 코드1157 코드2941 코드
1082810773901218258기능개발✔️ answer의 size를 정확히 알 수 없으니, List + ArrayList<> 사용✔️ 필요한 일수계산시 올림 Math.ceil() 사용✔️ return 시 stream 사용
완주하지 못한 선수 > 전화번호 목록 > ⭐의상 > 1764 듣보잡
매 순간 가장 좋아 보이는 선택을 하는 알고리즘N종류 동전으로 K원을 만들 때 최소 동전 개수O(N)회의실 1개로 최대 몇 개 회의 가능?O(N log N) - 정렬N명이 ATM 사용 시 최소 대기 시간 합O(N log N) - 정렬11047 동전01931 회의실배정1
2798 (블랙잭)2231 (분해합)1018 (체스판 다시 칠하기)1436 (영화감독 숌)
2750 (수 정렬하기)10989 (수 정렬하기 3)1181 (단어 정렬)11650 (좌표 정렬하기)