본문 바로가기

Algorithm272

[Programmers] Lv.0 | 숨어있는 숫자의 덧셈 (1) | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120851 풀이class Solution { public int solution(String my_string) { int answer = 0; // 문자열을 하나씩 확인 for (int i = 0; i 2025. 10. 9.
[Programmers] Lv.0 | 소인수분해 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120852 풀이import java.util.*;class Solution { public int[] solution(int n) { // Set을 사용하여 중복된 소인수를 자동으로 제거하고, 순서를 보장하기 위해 LinkedHashSet 사용 Set factors = new LinkedHashSet(); // 2로 나누기: 2는 가장 작은 소수이므로, 먼저 2로 계속 나누어 처리 while (n % 2 == 0) { factors.add(2); // 2가 소인수로 발견되면 추가 n /= 2; // .. 2025. 10. 8.
[Programmers] Lv.0 | 컨트롤 제트 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120853 풀이class Solution { public int solution(String s) { int answer = 0; int lastNumber = 0; String[] tokens = s.split(" "); for (String token : tokens) { if (token.equals("Z")) { answer -= lastNumber; } else { lastNumber = Integer.parseInt(token.. 2025. 10. 7.
[Programmers] Lv.0 | 배열 원소의 길이 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120854 풀이class Solution { public int[] solution(String[] strlist) { int[] answer = new int[strlist.length]; for (int i = 0; i 2025. 10. 6.
[Programmers] Lv.0 | 직사각형 넓이 구하기 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120860 풀이class Solution { public int solution(int[][] dots) { // 첫 번째 점의 x, y 좌표를 기준으로 초기값 설정 int minX = dots[0][0]; // x 좌표의 최솟값 int maxX = dots[0][0]; // x 좌표의 최댓값 int minY = dots[0][1]; // y 좌표의 최솟값 int maxY = dots[0][1]; // y 좌표의 최댓값 // 두 번째 점부터 나머지 좌표들을 확인하면서 최솟값/최댓값 갱신 for (int i.. 2025. 10. 5.
[Programmers] Lv.0 | 캐릭터의 좌표 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120861 풀이class Solution { public int[] solution(String[] keyinput, int[] board) { // 현재 위치를 (0, 0)으로 초기화 int x = 0; int y = 0; // 보드의 절반 크기 계산 (최대 이동 범위 설정) int maxX = board[0] / 2; int maxY = board[1] / 2; // 입력된 방향키를 하나씩 처리 for (String key : keyinput) { if (key.equa.. 2025. 10. 4.
[Programmers] Lv.0 | 최댓값 만들기 (2) | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120862 풀이import java.util.Arrays;class Solution { public int solution(int[] numbers) { Arrays.sort(numbers); int n = numbers.length; int max1 = numbers[n - 1] * numbers[n - 2]; int max2 = numbers[0] * numbers[1]; return Math.max(max1, max2); }} 2025. 10. 3.
[Programmers] Lv.0 | 다항식 더하기 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120863 풀이class Solution { public String solution(String polynomial) { int x = 0, n = 0; for (String term : polynomial.split(" ")) { if (term.equals("+")) { continue; } if (term.contains("x")) { x += term.equals("x") ? 1 : Integer.parseInt.. 2025. 10. 2.
[Programmers] Lv.0 | 숨어있는 숫자의 덧셈 (2) | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120864 풀이import java.util.regex.*;class Solution { public int solution(String my_string) { int sum = 0; Matcher matcher = Pattern.compile("\\d+").matcher(my_string); while (matcher.find()) { sum += Integer.parseInt(matcher.group()); } return sum; }}class Solutio.. 2025. 10. 1.
[Programmers] Lv.0 | 안전지대 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120866 풀이public class Solution { public int solution(int[][] board) { int n = board.length; boolean[][] dangerZone = new boolean[n][n]; // 위험지역 표시 배열 // 8방향을 나타내는 방향 벡터 (상, 하, 좌, 우, 대각선) int[] dx = {-1, -1, -1, 0, 0, 1, 1, 1}; int[] dy = {-1, 0, 1, -1, 1, -1, 0, 1}; // 1. 지뢰와 그 주변 8칸을 위험지역.. 2025. 9. 30.
[Programmers] Lv.0 | 삼각형의 완성조건 (2) | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120868 풀이class Solution { public int solution(int[] sides) { int answer = 0; int a = sides[0]; int b = sides[1]; int min = Math.abs(a - b) + 1; int max = (a + b) - 1; answer = max - min + 1; return answer; }}참고🔺 삼각형의 조건 공식 증명: (|a - b| |a - b| ✅ 삼각형이 되기 위.. 2025. 9. 29.
[Programmers] Lv.0 | 외계어 사전 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120869 풀이import java.util.*;class Solution { public int solution(String[] spell, String[] dic) { boolean found = Arrays.stream(dic) .anyMatch(word -> { for (String s : spell) { int count = word.length() - word.replace(s, "").length(); if (count != 1) { .. 2025. 9. 27.