본문 바로가기

PS23

[프로그래머스] 요격 시스템 스케줄링과 비슷한 레벨 2의 요격 시스템 문제를 풀어보았다. 스케줄링 문제는 개념은 알고있었는데 관련 문제는 처음 풀어보는 것 같다. import java.util.*; // A나라의 미사일은 X축에 평행하게 좌표로 주어짐 // B나라에서 최소한의 미사일을 사용하여 요격 // 시간복잡도 O(N^2) 2024. 3. 4.
[프로그래머스] 타겟 넘버 DFS/BFS 감을 되찾고자 레벨 2의 타겟 넘버 문제를 풀었다. 나는 DFS를 선택해 문제를 풀었다. // numbers 배열에 숫자들의 목록이 들어있음 // 배열의 숫자들을 각 단계에서 더하거나 빼서 // target이 나올 수 있는 경우를 카운트해서 반환. // DFS/BFS 사용하는 것이 좋아보임 class Solution { static int result = 0; public int solution(int[] numbers, int target) { return dfs(numbers, target, 0, 0); } // numbers: 숫자 배열 // target: 목표값 // idx: 숫자 배열의 인덱스 // compute: 계산된 값 public int dfs(int[] numbers, i.. 2024. 3. 4.
[백준] 오아시스 재결합 - 3015 Python 플레5 문제인 오아시스 재결합 문제이다. 스택을 사용하여 문제를 풀었다. 겁도 없이 플레5 문제를 풀게 되었는데 스택을 사용한다는 것을 알고 있으니 생각보다는 괜찮았던 것 같다. (몇 시간 걸리긴 했지만) 확실히 Java 보다는 Python이 좀 더 간편한 것 같다. 자바로 푼 건 파이썬으로, 파이썬으로 푼건 자바로 풀어봐야겠다. # 두 사람 A와 B가 서로 볼 수 있으려면, 두 사람 사이에 A 또는 B보다 키가 큰 사람이 없어야 한다. # 줄에 서있는 사람의 키가 주어졌을 때, 서로 볼 수 있는 쌍의 수를 구하는 프로그램 import sys # 입력 N(1 2024. 3. 4.
[백준] 두 배열의 합 - 2143 Java 백준의 두 배열의 합 문제를 풀어보았다.(Java) 구현에 사용한 알고리즘은 TwoPointer이다. TwoPointer에 대해 생소하여서 기존에 풀었던 기초라고 생각한 문제로 다시 풀어보았다. 이번 문제로 개념을 좀 잡은 것 같다. 작성한 코드는 아래와 같다. 두 배열의 부분합을 계산한 뒤 리스트에 넣고 정렬한다. 정렬한 리스트를 토대로 투 포인터를 사용하여 제시한 합과 동일한 부분합을 계산한다. package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; impo.. 2024. 2. 18.