본문 바로가기

프로그래머스 알고리즘6

[프로그래머스] 문자열 압축 - Java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krimport java.util.*;class Solution { private List generationToken(String s, int tokenLength) { List tokens = new ArrayList(); // -> 이 부분에서 실수. "앞에서부터" 조건을 만족하기 위해서는 tokenLength씩 반복해서 잘라내야 함 for (int startIndex = 0; startIndex s.length()) { endIndex = s.length(); } .. 2025. 2. 3.
[프로그래머스] 거리두기 확인하기 - Java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import java.util.*;class Solution { class Node { int x; int y; int distance; Node(int x, int y, int distance) { this.x = x; this.y = y; this.distance = distance; } } private static final int[] dx = {0, 0, -1, 1}; private stati.. 2025. 2. 3.
[프로그래머스] 교점에 별 만들기 - Java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import java.util.*;class Solution { private static class Point { public final long x; public final long y; private Point(long x, long y) { this.x = x; this.y = y; } public String toString() { return "\n" + "x: " + x + "\ny: " + y + "\n"; .. 2025. 2. 3.
[프로그래머스] 삼각 달팽이 - Java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krclass Solution { public int[] solution(int n) { int[] answer = {}; int x = 0; int y = 0; int cnt = 1; int phase = 0; long[][] arr = new long[n][n]; arr[y][x] = cnt++; while (true) { // 아래로 이동 while (y + 1 .. 2025. 1. 15.
[프로그래머스] 핸드폰 번호 가리기 - Swift [Lv.2] https://school.programmers.co.kr/learn/courses/30/lessons/12948?language=swift 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. String(repeating:, count:)를 사용하여 뒤 네 자리 전까지의 숫자를 "*"로 초기화시킨 문자열을 만든다. 2. str.suffix()를 사용하여 뒤에서부터 네 자리를 잘라 ans에 append()해준다. ("ans.append(String(phone_number.suffix(4)))"와 동일한 코드로 "ans += phone_n.. 2023. 9. 26.
[프로그래머스] 최솟값 만들기 - Swift [Lv.2] https://school.programmers.co.kr/learn/courses/30/lessons/12941?language=swift 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 A와 B를 서로 오름차순/내림차순 정렬해서 동일한 인덱스끼리 곱한 값을 모두 더한 값이 최솟값이다. sorted()와 sorted(by: >)를 통해 오름차순/내림차순 정렬을 차례대로 해주는게 포인트이다. import Foundation func solution(_ A:[Int], _ B:[Int]) -> Int { var ans = 0 var arr1.. 2023. 9. 26.