📌 LIST(배열) ✏️ 부분집합(비트연산) > 비트연산의 핵심은 for문 구조이다. 이해하는게 제일 좋긴하지만, 이해못하니까 그냥 외우기를 반복하자. 그리고 부분집합을 구하기위해서 나오는 숫자는 부분집합을 구해야하는 인덱스임을 다시 확인. ✏️ 이진탐색 > 해당 문제에서 target과 mid변수의 비교에 따라서 left or right가 mid로 ...
📌 문자열 ✏️ 회문 > 솔직히 코드를 쉽게 짜기위해서는 슬라이싱 밖에 생각이 안난다. > 라기보다는 반복문을 돌려서 단순히 회문에 해당하는 알파벳 갯수를 카운팅하기에는 > 내가 너무 게으르다... 사실 start, end 로 변수두고 비교해도 되긴함 > 다음부터는 꼭 그렇게 하도록 노력해야겠다... > 참고로 전치행렬은 [list(x) for x i...
📌 DP ✏️ 종이붙이기(DP) > 해당 문제는 점화식을 워낙 많이 작성해보아서, 어려움이 없었지만, DP에 대해서 부족함을 많이 느끼고 있는 중이다. 일단 계획하던대로 IM, Advanced 및 A형 기출문제를 다 풀고, DP문제만 골라서 풀어보는 시간을 가져야할듯 싶다. 📌 Stack ✏️ 괄호검사 ✏️ 반복문자 지우기 > stack의 습성을...
해당 문제는 일단 내 취향은 아니다...생각보다 역시 수학이 싫었던 나는 저런 공식이 있는 지도 몰랐음get_primes(n) 함수는 에라토스테네스의 체 알고리즘을 사용하여 n 이하의 모든 소수를 찾아내는 함수입니다.goldbach_partition(n, primes)
스택(Stack)은 LIFO(Last-In, First-Out) 구조를 가지며, 요소를 삽입(push)하거나 삭제(pop)할 수 있다.그래서 스택 관련 30문항을 올려두고 두고두고 보려고 한다.문제: 문자열이 주어졌을 때, 괄호가 제대로 맞춰져 있는지 확인하는 함수를
데이터베이스에서 데이터를 조회할 때 사용하는 구문입니다. 테이블에서 원하는 열(column)을 선택하여 가져올 수 있습니다.예를 들어, employee 테이블에서 name, age, salary 열을 선택하여 조회하는 SQL 구문은 다음과 같습니다.WHERE 구문은 S
작성 코드 로직 설명 main 메서드에서는 반복문을 통해 입력을 처리합니다. 입력은 cnt와 숫자들로 이루어진 배열인 lst로 받습니다. cnt가 0이면 입력 종료를 의미하므로 반복문을 종료합니다. combinations 리스트는 가능한 조합을 저장할 리스트입니다. generateCombinations 메서드를 호출하여 조합을 생성합니다. generat...
Point 클래스: 좌표를 표현하는 클래스로, x와 y 좌표를 저장합니다.boolean\[]\[] visited: 체스판의 각 칸을 방문한 여부를 저장하는 2차원 배열입니다.visited\[x]\[y]가 true이면 (x, y) 좌표를 방문한 것을 의미합니다.Queue
2차원 배열(arr): 입력받은 m × n 크기의 배열로, 각 요소는 해당 위치의 영역을 나타냅니다. 0은 미방문 영역, 1은 방문한 영역을 의미합니다.List<Integer> areas: 영역의 크기를 저장하기 위한 리스트입니다. DFS를 통해 계산된 각 영역의
주어진 코드는 DFS(Depth-First Search) 알고리즘을 사용하여 시작 숫자 start를 목표 숫자 end로 변환하는 최소 횟수를 계산하는 프로그램입니다.아래는 주요 코드 블록의 설명입니다.main 함수:입력을 받기 위해 BufferedReader와 Stri
이 코드는 DFS (깊이 우선 탐색)과 BFS (너비 우선 탐색) 알고리즘을 사용하여 그래프를 탐색하는 프로그램입니다.입력 받기첫 번째 줄에서 정점의 개수 n, 간선의 개수 m, 시작 정점 v를 입력 받습니다.입력은 BufferedReader를 사용하여 받습니다.그래프
작성 코드 설명 자료구조 및 로직 자바스크립트 파이썬
주어진 코드는 바이러스의 전파를 나타내는 그래프에서 1번 노드부터 시작하여 BFS(Breadth-First Search)를 수행하여 전체 감염된 노드의 수를 계산하는 로직입니다. 아래는 해당 코드의 로직을 설명한 것입니다.입력으로 주어지는 노드 수(v)와 간선 수(w)
해당 코드는 섬의 개수와 각 섬의 크기를 구하는 BFS(Breadth-First Search) 알고리즘을 사용한 문제 해결 코드입니다. 자료구조로는 2차원 배열 graph, 정수형 배열 dx와 dy, 정수형 변수 n, number, count, islandCount,
해당 코드는 정렬된 배열에서 두 수의 합이 0에 가장 가까운 값을 찾는 문제를 해결하는 코드입니다. 자료구조로는 정수형 배열 solution, 정수형 변수 left, right, diff 그리고 정수형 배열 diff_match를 사용합니다.solution: 입력으로 받
해당 코드는 이진 탐색 트리(Binary Search Tree)를 구현하고, 후위 순회(Post-order traversal)를 수행하는 코드입니다. 아래에 자료구조와 로직을 리스트 형태로 설명해드리겠습니다:Node: 이진 탐색 트리의 노드를 나타내는 클래스입니다. 각
해당 코드는 보물섬(Treasure Island)의 최장 거리를 구하는 문제를 해결하기 위한 Java 프로그램입니다. 다음은 코드에 사용된 자료구조와 로직에 대한 설명입니다.자료구조int arr: 보물섬 지도를 나타내는 2차원 배열입니다. 'L'은 1로, 'W'는 0으
해당 코드는 트리 구조에서 노드를 삭제하고 남은 리프 노드의 개수를 세는 문제를 해결하는 코드입니다. 각 부분에 대한 설명은 아래와 같습니다dfs 메소드:dfs 메소드는 깊이 우선 탐색(Depth-First Search)을 수행하는 재귀 함수입니다.num은 현재 탐색
해당 코드는 BFS(Breadth-First Search) 알고리즘을 사용하여 이모티콘 생성 문제를 해결하는 코드입니다. 아래는 코드의 구성과 동작에 대한 설명입니다.자료구조:dp: 2차원 배열로서, dp\[i]\[j]는 화면에 이모티콘이 i개 있고 클립보드에 이모티콘
이 코드는 입력으로 강의 시간을 받아서 최대한 많은 수의 강의를 할 수 있는 경우의 수를 계산하는 프로그램입니다. 이 프로그램은 자바로 작성되어 있습니다.프로그램의 로직은 다음과 같습니다:먼저, BufferedReader와 StringTokenizer를 사용하여 입력을
코드의 로직을 리스트 형태로 설명하면 다음과 같습니다:BufferedReader를 사용하여 입력을 받습니다.StringTokenizer를 사용하여 첫 번째 줄에서 세로 길이 h와 가로 길이 w를 읽어옵니다.빈 리스트 blocks를 생성합니다.StringTokenizer
코드의 자료구조 및 로직을 설명해드리겠습니다.자료구조:List<Integer> result: 선택된 숫자들을 담기 위한 정수형 리스트입니다. 선택된 숫자들이 순서대로 저장됩니다.로직:main 메소드에서 입력을 받고, 반복문을 통해 숫자를 배열에 저장합니다.배열 n
위의 코드는 주어진 일정 기간 동안 얻을 수 있는 최대 이익을 계산하는 프로그램입니다. 주어진 일정 기간 내에는 여러 작업을 수행할 수 있으며, 각 작업은 소요 시간과 해당 작업을 수행했을 때 얻을 수 있는 이익으로 표현됩니다.로직은 다음과 같습니다:입력을 받습니다.B
위의 코드는 "감소하는 수"를 생성하는 로직을 구현한 것입니다. 아래는 코드의 로직을 리스트 형태로 설명한 것입니다.main 메서드:입력을 받기 위해 BufferedReader와 StringTokenizer를 사용합니다.정수 n을 입력 받습니다.감소하는 수를 저장할 리
이 코드는 "컨베이어 벨트 위의 로봇" 문제를 해결하기 위한 자바 코드입니다. 문제는 로봇이 컨베이어 벨트를 따라 이동하면서 벨트의 내구도를 감소시키는 것이며, 내구도가 0인 칸이 K개 이상이 되면 종료하는 것입니다.먼저, 컨베이어 벨트의 길이(N), 내구도가 0인 칸
이 코드는 "옥상 정원 꾸미기" 문제를 해결하는 자바 코드입니다. 문제의 목표는 각 건물에서 보이는 다른 건물들의 수를 셉니다.주요 사항은 각 건물이 자신보다 높은 건물이 나올 때까지의 건물들만 볼 수 있다는 점입니다. 이 점 때문에 각 건물이 어느 건물까지 볼 수 있
이 코드는 경쟁적 감염 문제를 해결하는 자바 코드입니다. 문제의 목표는 특정 시간(S) 후에 주어진 위치(X, Y)에 존재하는 바이러스의 종류를 알아내는 것입니다.이 코드의 주요 로직은 다음과 같습니다:먼저, 2차원 보드의 크기(N)와 바이러스의 종류(K)를 입력받습니
이 코드는 세 개의 물통 A, B, C가 있고, 각각의 물통은 서로 물을 부을 수 있을 때, A 물통이 비어 있을 때, C 물통에 담길 수 있는 물의 양을 구하는 문제를 해결합니다.처음에는 모든 물통이 빈 상태로 시작하지만, C 물통은 가득 차 있습니다. 따라서 BFS
이 Java 코드는 특정 건물의 내부를 탐색하는 문제를 해결하기 위한 것입니다. 그러면서 3차원 공간에서의 너비 우선 탐색(BFS, Breadth-First Search) 알고리즘을 사용하고 있습니다.본 코드의 주요 구성요소를 좀 더 자세히 살펴보겠습니다:dz, dy,
이 Java 코드는 문자열을 변환하는 문제를 해결합니다. 여기서는 두 가지 연산을 이용해서 문자열 S를 T로 바꾸려고 합니다.문자열의 끝에 'A'를 추가한다.문자열을 뒤집고 끝에 'B'를 추가한다.주요 구성 요소는 다음과 같습니다:Schars, Tchars: 입력받은
이 Java 코드는 주어진 문자열이 회문(앞뒤가 똑같은 문자열)인지, 유사 회문(한 문자를 제거해서 회문이 되는 문자열)인지, 아니면 둘 다 아닌지 판단하는 문제를 해결합니다.주요 구성 요소는 다음과 같습니다:isPalindrome: 주어진 문자열 s가 회문인지 확인하
이 코드는 배의 크레인들로 박스를 옮기는 문제를 해결하는 자바 알고리즘입니다. 이 알고리즘은 박스들을 가장 효율적으로 옮기기 위해 크레인들의 용량을 최대한 활용하는 것을 목표로 합니다.코드는 먼저 크레인들의 수(n)와 각 크레인의 최대 용량(cranes)을 입력받습니다
이 코드는 감지 센서의 위치를 최적화하는 문제를 해결하는 자바 알고리즘입니다. 감지 센서들은 일렬로 놓여져 있으며, 각 센서를 커버하는 클러스터의 수를 최소화하는 것이 목표입니다.먼저, 센서의 수(N)와 설치할 수 있는 기지국의 수(K)를 입력받습니다.그 다음, 각 센