Computer Sciences(236)
-
[Baekjoon] 1158번: 요세푸스 문제 - Java
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 방법 1. Queue 먼저 모든 사람을 큐에 넣고 K - 1만큼 빼고 다시 큐에 넣는다. 그 후에 빼는 사람은 K 번째가 되므로 큐가 빌 때까지 이 과정을 반복하는 식으로 해결했다. 시간 복잡도는 O(N * K) 이다. while (!queue.isEmpty()) { IntStream.rangeClosed(1, K - 1).forEach(idx -> queue.add(queue.remove())); ans.add(queue.remove()); } 풀이 방법 2. ArrayList 지..
2023.02.21 -
[Baekjoon] 12904번: A와 B - Java
https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 문제 설명 문자열 S와 T가 주어졌을 때, 주어진 규칙으로 S를 T로 만들 수 있는지 여부를 계산하는 문제이다. 풀이 방법 이 문제는 발상의 전환이 필요하다. S에서 T로 만들려면 모든 경우의 수를 따져야 한다. 하지만 T에서 S로 만드는 것은 'A와 'B' 중 한 가지만 고려하면 된다. T를 S로 만드는 방법은 다음과 같다. A로 끝나면 마지막 문자를 제거한..
2023.02.20 -
[Baekjoon] 1764번: 듣보잡 - Java
https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제 설명 듣도 못한 사람 N명과 보도 못한 사람 M명을 입력받고 두 리스트에 모두 포함되는 사람의 명수와 이름을 정렬해서 출력하며 된다. 풀이 방법 1. 이중 반복문 - 시간 초과 N과 M의 최대 크기가 500,000씩이어서 이중 반복문으로 풀면 시간 초과가 날 것 같았고 역시나 시간 초과가 발생했다. deudbojabs = Stream.of(deudjabs) .filter((deudjab) ..
2023.02.20 -
[Baekjoon] 14501번: 퇴사 - Java
https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 설명 상담을 통한 최대 수익을 구하면 된다. 문제 이해는 크게 어렵지 않다. 풀이 방법 재귀를 활용한 완전탐색 방법을 사용할 수 있다. 이 방법은 시간 복잡도가 O(n^2)으로 문제 범위가 최대 15로 작아서 사용 가능하다. 범위가 커질 경우 DP를 활용해야 해결 가능할 것으로 보인다. private static void solution(int day, int pay) { // 퇴사하는 날이 되면 최대 급여를 계산한다. if (day == N) { max = Math.max(max, pay); return; } // 퇴사하는 날..
2023.02.18 -
[LeetCode] 209번: Minimum Size Subarray Sum - Java
https://leetcode.com/problems/minimum-size-subarray-sum/ Minimum Size Subarray Sum - LeetCode Can you solve this real interview question? Minimum Size Subarray Sum - Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarr leetcode.com 문제 설명 타겟 넘버와 양수로 구성된 배열이 주어진다. 이때 ..
2023.02.17 -
[LeetCode] 724번: Find Pivot Index - Java
https://leetcode.com/problems/find-pivot-index/ Find Pivot Index - LeetCode Find Pivot Index - Given an array of integers nums, calculate the pivot index of this array. The pivot index is the index where the sum of all the numbers strictly to the left of the index is equal to the sum of all the numbers strictly to the index's righ leetcode.com 문제 설명 피봇 인덱스는 해당 인덱스를 기준으로 배열의 좌측의 합과 우측의 합이 같은 인덱스를..
2023.02.17