Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬ 62

[해커랭크Medium] (2024) Binary Tree Nodes, 이진 트리 노드 (설명/코드/정답)

문제 링크 : https://www.hackerrank.com/challenges/binary-search-tree-1/problem 1. 요구 사항 이해 이진 트리 노드의 타입을 식별 최상위 노드 Root 최하위 노드 Leaf 중간 노드 Inner node 정렬 2. 설계/검증 Root - 최상위 노드 N은 부모 P값이 null Leaf - 최하위 노드는 부모에 해당하지 않는다. 3. 정상 코드 Binary Tree Nodes, 이진 트리 노드 SELECT N, CASE WHEN P IS NULL THEN "Root" WHEN N IN (SELECT P FROM BST WHERE P IS NOT NULL) THEN "Inner" ELSE "Leaf" END AS AA FROM BST ORDER BY N..

[백준](2024) 줄세우기 (설명/코드/정답)

문제 링크 : https://www.acmicpc.net/problem/10431 난이도 알고리즘 실버5 구현, 시뮬레이션 1. 요구 사항 이해 시간, 메모리 제한 : 1초 / 256MB 주어진 방법대로 줄 서기를 시뮬레이션하면서 몇 번 뒤로 물러서는지를 계산. * P: 테스트 케이스의 수 (1 ≤ P ≤ 1000) * T : 각 테스트 케이스 번호 * 테스트 케이스는 20개의 양의 정수가 공백으로 구분되어 주어짐. 2. 설계/검증 입력 - 테스트 케이스의 수 - 테스트 케이스의 번호 - 테스트 케이스 번호에 해당하는 원소 시간 복잡도 최악의 경우 공간 복잡도 O(1) -- O(1) 3. 정상 코드 import java.util.Scanner; public class Main{ public static ..

[백준](2024) 성 지키기 (설명/코드/정답)

문제 링크 : https://www.acmicpc.net/problem/1236 난이도 알고리즘 브론즈1 구현 1. 요구 사항 이해 시간, 메모리 제한 : 2초 / 128MB 각 행과 각 열을 순회하면서 해당 행과 열에 경비원이 하나도 없으면 카운팅 2. 설계/검증 입력 각 행과 열에 X가 존재하는지 여부를 저장하는 배열 시간 복잡도 최악의 경우 공간 복잡도 O(N * M) 2,500 O(N * M) 함수화 import java.util.*; public class Main { public static void main(String[] args) { // N,M,성의 상태를 입력받는다 // Scanner 객체 생성 Scanner scan = new Scanner(System.in); int N = sca..

[백준](2024) ✔️개미 (설명/코드/정답)

문제 링크 : https://www.acmicpc.net/problem/10158 난이도 알고리즘 실버3 수학, 애드 혹, 사칙연산 1. 요구 사항 이해 시간, 메모리 제한 : 0.15초 / 256MB x가 w, y가 h인 이차원 격자에서 x, y +1씩 이동. x가 0또는 w, y가 0또는 h일때 증감을 바꿔서 입력 횟수만큼의 이동 후 있는 위치를 계산 w와 h는 자연수이며 범위는 2 ≤ w,h ≤ 40,000 초기 위치 p와 q도 자연수이며 범위는 각각 0 < p < w과 0 < q < h 이동 횟수 t의 범위는 1 ≤ t ≤ 200,000,000 2. 설계/검증 입력 - 격자 설정 - 초기 위치 좌표 - 이동 횟수 이동 실행 반복문 - 증감 변환 시간 복잡도 최악의 경우 공간 복잡도 O(1) 3. ..

[백준](2024) 소금 폭탄 (설명/코드/정답)

문제 링크 : https://www.acmicpc.net/problem/13223 난이도 알고리즘 브론즈3 수학, 구현, 사칙연산 1. 요구 사항 이해 시간, 메모리 제한 : 2초 / 512MB 현재 시각으로부터 동작 시각까지의 인터벌을 구하시오 현재 시각 hh:mm:ss 포맷 (0 ≤ h ≤ 23), (0 ≤ m ≤ 59) , (0 ≤ s ≤ 59) 소금 투하 시각 hh:mm:ss 두 시각의 차이 (1초 ≤ interval ≤ 24시간) 2. 설계/검증 입력 입력받은 시각을 파싱 - split() 사용 입력받은 시간 차이 계산 음수 보정 시, 분, 초 변수를 출력 hh:mm:ss 포맷 형태로 출력 - System.out.printf("%02d:%02d:%02d", hh, mm, ss) 시간 복잡도 최악..

[백준](2024) 문서 검색 (설명/코드/정답)

문제 링크 : https://www.acmicpc.net/problem/1543 난이도 알고리즘 실버5 문자열, 완전탐색 1. 요구 사항 이해 시간, 메모리 제한 : 2초 / 128MB 영어로만 이루어진 문서에 입력한 단어가 몇 번 등장하는지 식별 문서 최대 2,500자 단어의 최대 길이 50 문서와 단어의 입력은 소문자 또는 공백 중복X 2. 설계/검증 문서와 단어의 입력 - nextLine() 문서를 순회하며 단어의 순서와 일치하면 리턴 단어의 철자 인덱스가 중복 X - 조회 성공 후 word의 길이만큼 이동한 후 다음 조회 시작 시간 복잡도 최악의 경우 공간 복잡도 O(N * M) 125,000 O(N + M) 3. 정상 코드 이중 for문 import java.util.Scanner; public..

[백준](2024) 단어 공부 (설명/코드/정답)

문제 링크 : https://www.acmicpc.net/problem/1157 난이도 알고리즘 브론즈1 구현, 문자열 1. 요구 사항 이해 시간, 메모리 제한 : 2초 / 128MB 대소문자가 섞인 단어에서 가장 많이 사용된 알파벳 식별 후 대문자로 출력 단어의 길이는 1,000,000 넘지 않음 빈도수가 가장 높은 알파벳이 여러개인 경우 '?' 출력 2. 설계/검증 소문자와 대문자는 같은 알파벳인 경우 하나로 처리 - toUpperCase() 로 전부 대문자 처리 가장 빈도 높은 알파벳과 그 빈도 수를 저장할 변수 시간 복잡도 최악의 경우 공간 복잡도 O(N) 1,000,000 O(1) 함수화 String word; private static void findMostFrequentAlphabet(w)..

[백준](2024)대소문자 바꾸기(설명/코드/정답)

문제 링크 : https://www.acmicpc.net/problem/2744 난이도 알고리즘 브론즈5 구현, 문자열 대소문자 바꾸기 1. 요구 사항 이해 시간, 메모리 제한 : 1초 / 128MB 입력받은 최대 100자 문자열을 대문자는 소문자로 소문자는 대문자로 변환 2. 설계/검증 대소문자 구분 대소문자 변환 - 아스키코드의 숫자 차이를 이용 System.out.println((char)('A' + 32)); // a System.out.println((char)('a' - 32)); // A 시간 복잡도 최악의 경우 공간 복잡도 O(N) -- O(N) 함수화 static void changeCase(String word){ if ("대문자인 경우"){ // 소문자로 변경 }else("소문자인 경..