java(70)
-
[알고리즘] 11286. 절댓값 힙
0. 문제 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 문제 이해 Heap Priority Queue Comparator 2. 제출 가. Priority Queue로 풀기 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Comparator; import java.util.PriorityQueue; import java.util.StringTokenizer; public class BO..
2024.02.18 -
[알고리즘] 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