https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static int N, M; static int[] parents; public static void..
https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 이 문제는 마지막 라인에 주어지는 노드들이 서로 연결되어 있는지를 판별하는 문제이다. 따라서 유니온 파인드 알고리즘으로 해결 가능하다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokeni..
https://school.programmers.co.kr/learn/courses/30/lessons/148653# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🐭 풀이 처음엔 자릿수를 다 더해주면 된다고 생각했습니다. 하지만 문제에 나온 예제 1번 16을 보면, 자릿수를 다 더해주면 7이지만 +1을 4번 누르고, -10을 2번 누르면 총 6번만에 0층에 도달할 수 있습니다. 이 예제에서 문제 풀이에 대한 힌트를 얻을 수 있습니다. 자릿수를 다 더해주는 경우는 먼저 -1을 6번 눌러서 1의 자리를 없애주고 -10을 1번 눌러서 0으로 만드는 과정입니다..
https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net A가 루트인 이진 트리가 주어집니다. 이 트리를 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 문제입니다. 💎 트리 표현 방법 static class Node를 선언했습니다. 현재 노트의 알파벳 값인 value, 왼쪽, 오른쪽 노드인 left, right를 멤버 변수로 가지..
https://www.acmicpc.net/problem/2295 2295번: 세 수의 합 우리가 x번째 수, y번째 수, z번째 수를 더해서 k번째 수를 만들었다라고 하자. 위의 예제에서 2+3+5=10의 경우는 x, y, z, k가 차례로 1, 2, 3, 4가 되며, 최적해의 경우는 2, 3, 4, 5가 된다. k번째 수가 최 www.acmicpc.net 자연수로 이루어진 집합에서 세 수 a, b, c, d를 뽑았을 때, a+b+c=d를 만족하는 최대 d를 구하는 문제입니다. 모든 경우의 수를 따져서 풀 수 있는데, 이럴 경우 N이 최대 1,000이기 때문에 N^3은 1,000,000,000으로 시간초과가 될 것입니다. 💎 풀이 a+b+c=d 우리가 성립시켜야 할 식입니다. 이 식을 이항해보면 a+b..
https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, m; static ArrayList q = new ArrayList(); public static void main(String[] ..

투 포인터 (Two Pointers) 투 포인터 알고리즘은 1차원 배열에서 두 개의 포인터를 조작하여 원하는 결과를 얻어내는 알고리즘입니다. 🎈 예제 길이가 n인 1차원 배열이 있을 때, 그 부분 배열의 원소의 합이 m이 되는 경우의 수를 알고 싶습니다. 모든 부분 배열을 탐색한다면 시간복잡도는 O(n^2)이 되겠습니다. 그러나 투 포인터를 사용하면 O(n) 에 문제를 해결할 수 있습니다. 포인터 2개를 만듭니다. start, end라고 하겠습니다. 처음 시작할 때는 start, end = 0 입니다. start = m) { start++; // start를 오른쪽으로 옮김 sum -= arr[start]; } else if (end == n) { break; } else { end++; // end를 ..
https://www.acmicpc.net/problem/16472 16472번: 고냥이 고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static int n; static int maxLength = 0; static int[] check = new int[26]; // 알파벳 몇번 나왔는지 기록 public static void main..
- Total
- Today
- Yesterday
- 중위순회
- 이진트리
- 스레드
- Java
- deque
- 알고리즘
- 이펙티브자바
- 투포인터 #알고리즘
- ORA-02289
- 빌더패턴
- 자바
- 정적팩터리메서드
- Sequence
- 백준
- 유니온파인드
- 프로그래머스
- 트리순회
- 전위순회
- 시퀀스
- BuilderPattern
- 시퀀스가존재하지않습니다
- effectivejava
- 후위순회
- 분리집합
- 생성자
- BAEKJOON
- 백준1976
- greedy
- 여행가자
- 탐욕법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |