본문 바로가기

코딩테스트/프로그래머스

(10)
[프로그래머스 JAVA] 42839. 소수 찾기 문제 링크  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법만들 수 있는 모든 수를 순열로 구해줍니다.같은 숫자인 경우를 처리해야 하므로 set을 사용합니다.최대 7자리 수이기 때문에 에라토스테네스의 체를 사용합니다.소스 코드import java.util.*;class Solution { char[] ch, bf = new char[7]; List arr = new LinkedList(); boolean[] visited; void permutation(int idx, int num) { if (idx == num)..
[프로그래머스 JAVA] 181832. 정수를 나선형으로 배치하기 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법나선형으로 배열을 채우기 위해 오른쪽, 아래, 왼쪽, 위 4방향으로 순차적으로 채워야 합니다.따라서 각 방향마다 출발지점을 만들고 채워줍니다.소스 코드class Solution { public int[][] solution(int n) { int[][] answer = new int[n][n], a = {{0, 0}, {0, n - 1}, {n - 1, n - 1}, {n - 1, 0}}; int[] d = {0, 1, 2, 3}; boolean fl..
[프로그래머스 JAVA] 181893. 배열 조각하기 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법List로 변환해 인덱스까지 잘라줍니다.소스 코드import java.util.*;import java.util.stream.*;class Solution { public int[] solution(int[] arr, int[] query) { List arrayList = Arrays.stream(arr) .boxed() ..
[프로그래머스 C++] 176963. 추억 점수 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법map으로 이름과 점수를 매핑합니다.소스 코드#include #include using namespace std;vector solution(vector name, vector yearning, vector> photo) { vector answer(photo.size(), 0); map nameWithYearn; for (int i = 0; i
[프로그래머스 C++] 176962. 과제 진행하기 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법지금 시작하기로 한 과제시각과 그다음 시작해야 할 과제시각의 차를 구한 후,지금 시작하는 과제시간과 위에서 구한 시간을 비교하며 과제를 끝낼 수 있는지 확인합니다.과제를 끝나고 난 후에도 시간이 남는다면, 하다 멈춘 과제들을 하나씩 수행합니다.소스 코드#include #include #include #include #include using namespace std;bool comp(vector& a, vector& b){ return a[1] solution(vector> plans) ..
[프로그래머스 C++] 12906. 같은 숫자는 싫어 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법연속적으로 나타나는 숫자를 없애는 unique함수를 사용합니다.소스 코드#include #include using namespace std;vector solution(vector arr) { arr.erase(unique(arr.begin(), arr.end()),arr.end()); return arr;}코드 설명unique 함수는 인접한 중복 요소들만 제거합니다. 이 함수는 주어진 범위 내에서 연속적으로 중복되는 요소들을 범위의 끝으로 이동시키고, 중복되지 않는 요소들만 ..
[프로그래머스 C++] 43165. 타겟 넘버 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법더하는 경우와 빼는 경우 2가지로 깊이 우선 탐색을 하였습니다.소스 코드#include #include using namespace std;int cnt = 0;void dfs(vector &numbers, int target, int idx, int sum){ if (idx == (int) numbers.size()) { if (target == sum) ++cnt; return ; } dfs(numbers, targe..
[프로그래머스 C++] 42586. 기능개발 문제 링크  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법현재 기능개발에 걸린 시간이 과거에 걸렸던 기능개발 시간보다 큰지 작은지 비교해줍니다.소스 코드#include #include using namespace std;vector solution(vector progresses, vector speeds){ vector answer(1, 0); int day, pastDay = (99 - progresses[0]) / speeds[0] + 1;; for (int i = 0; i 코드 설명현재 기능 개발에 걸린 시간이 앞에 ..