분류 전체보기(581)
-
[알고리즘] 1991. 트리 순회
0. 문제 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 1. 문제 이해 트리 dfs 2. 제출 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ1991 { static int N; // 알파벳 개수 26개 static Node[] tree; static StringBuffer sb; public static void main(String[]..
2024.02.18 -
[알고리즘] 1713. 후보 추천하기
0. 문제 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net 1. 문제 이해 시뮬레이션 정렬 2. 오답 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.PriorityQueue; import java.util.StringTokenizer; public class ..
2024.02.18 -
[알고리즘] 2493. 탑
0. 문제 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 1. 문제 이해 2. 제출 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class BOJ2493 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedRe..
2024.02.18 -
[알고리즘] 9229. 한빈이와 Spot Mart
0. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 이해 조합 종류 설명 기호 순열 N개의 원소 중 R개의 원소로 순서를 가진 부분집합을 만드는 경우의 수 nPr 조합 N개의 원소 중 R개의 원소로 부분집합을 만드는 경우의 수 nCr 부분집합 N개의 원소로 부분집합을 만드는 모든 경우의 수 nHr 2. 제출 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class SWEA9229 { public stat..
2024.02.18 -
[알고리즘] 1233. 사칙연산 유효성 검사
0. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 이해 트리 2. 제출 방법 1 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class SWEA1233 { static String[] opers = {"+", "-", "*", "/"}; static int level, firstLeaf, lastLeaf; static int N; static BufferedReader br; static StringTokenizer st; public static ..
2024.02.18 -
[Java] 비트 마스킹, Next_Permutation
1. 비트연산 연산자 설명 예시 & 비트 AND 연산 5 & 3 = 1 ^ 비트 XOR(배타적 OR) 연산 5 ^ 3 = 6 ~ 비트 NOT 연산 (1의 보수) ~5 = -6 > 2 = 1 >>> 부호 없는 오른쪽 시프트 연산 -5 >>> 2 = 1073741822 2. 비트마스킹 가. 순열 nPn → n! 이다. (보통 10!을 넘어서면 힘들다.) 비트마스킹을 사용해서 공간복잡도를 줄일 수 있다. 기존에는 boolean[] 또는 int[] 를 사용해서 방문 체크를 수행했다. 비트마스킹을 활용하면 int 하나에도 모두 저장할 수 있다. input[] // 숫자 배열 numbers[] // 순열 저장 배열 perm(cnt, flag) if cnt == N 순열 생성 완료 else for i from 0 t..
2024.02.18 -
[Java] 트리
Tree에 대한 이론은 앞서 정리했었다. [알고리즘] 그래프 이론 기초 0. 강의 2주차 이론 [알고리즘 강의] 2주차. 그래프이론, 인접행렬, 인접리스트, DFS, BFS, 트리순회 이번주차는 그래프이론과 DFS(깊이우선탐색), BFS(너비우선탐색) 그리고 트리순회인 preorder, inord... ramen4598.tistory.com 1. 이진트리 - 특성 높이 n(0부터 시작)에 위치한 노드의 최대 개수는 2^n개 높이가 n인 이진 트리가 가질 수 있는 노드의 … 최소 개수는 n+1개다. → 변질(편향) 이진트리 최대 개수는 2^(n+1)-1개다. → 포화 이진 트리 2. 이진 트리 - 구현 가. 배열 - 노드 번호를 인덱스로 사용 루트의 번호를 1로 함. n 레벨에 위치한 노드에 대하여 왼쪽에..
2024.02.18 -
[Java] 연결 리스트
1. 리스트 순서를 가진 데이터의 집합을 가리키는 추상자료형. 값의 중복을 허용한다. 순차 리스트 : 배열을 기반으로 구현. : Random access 가능. : 삽입/삭제 연산에 불리. 연결 리스트 : 메모리의 동적할당을 기반으로 구현. : 삽입/삭제에 유리. : 탐색에 불리. 2. 연결 리스트 자료의 논리적인 순서와 물리적인 순서가 일치하지 않을 수 있다. 개별적인 노드를 연결하여 하나의 자료구조를 형성. class Node { T data'; Node link; } node 데이터 필드 링크 필드 : 연결된 노드의 참조값을 저장. head 첫번째 노드에 대한 참조값을 가지고 있음. tail 마지막 노드에 대한 참조값을 가지고 있음. 가. 단순 연결 리스트 다음 노드에 대한 참조값만 가지고 있음. ..
2024.02.18