Lv2(51)
-
[Programmers] Lv2. 피보나치 수 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 전략 입력 데이터 범위가 최대 10만 인 걸 고려하면, 재귀로는 절대 못 구하니 DP(Dynamic Programming)으로 풀었습니다. 1234567로 나눈 나머지를 리턴하라는 걸로 보아, 오버플로우를 조심해야겠다고 생각했구요. ✏️소스 코드 및 결과 #include using namespace std; const int DIVISION = 1234567; int solution(int n) { vector F(n + 1); F[0] = 0; F[1] = 1; for (int i..
2023.06.12 -
[Programmers] Lv2. 이진 변환 반복하기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 사실상 풀이 과정이라 할 것도 없습니다. 문제에서 제시한 내용 그대로 코드로 구현하면 됩니다. ✏️소스 코드 및 결과 #include #include #include using namespace std; string RemoveZero(const string& str, int& removedZeroCount) { string result; for (const auto element : str) { if (element == '1') { result.push_back('1'); ..
2023.06.12 -
[Programmers] Lv2. 숫자의 표현 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 for문을 통해 자연수 1부터 차례대로 합계에 더하고, Queue에도 원소를 추가합니다. 만약 합계가 n과 같다면 answer + 1를 해주고, n < 합계가 되는 상황이라면 Queue에서 하나씩 pop 하여 합계에서 뺍니다. Queue의 원소를 pop하여 뺀 합계가 n과 같다면 answer + 1을 해 주고, 아니라면 큐가 비거나, 합계 < n이 되는 상황까지 진행해줍니다. ✏️소스 코드 및 결과 #include #include using namespace std; int s..
2023.06.12 -
[Programmers] Lv2. 최솟값 만들기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 자연수로만 이루어진 길이가 같은 두 배열이니, 하나는 오름차순으로, 다른 하나는 내림차순으로 정렬 후 각각 내적하면 되겠다 싶었습니다. 예를 들어, vector A = { \(a_1, a_2, a_3\) }, vector B = { \(b_1, b_2, b_3\) } 라고 한다면, 벡터의 내적(Dot product) = { \( a_1b_1 + a_2b_2 + a_3b_3\) }와 같습니다. ✏️소스 코드 및 결과 #include #include using namespace s..
2023.06.11 -
[Programmers] Lv2. JadenCase 문자열 만들기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 "공백문자가 여러 개 나올 수 있다." 라는 조건을 처음에 제대로 적용 못했었습니다. " 3people unFollowed me " 이런 식으로 양 옆에도 공백 문자가 붙을 수 있다는 점을 고려해야 하죠. JadenCase 문자로 바꿔준 후에도 기존 문자열의 공백들은 그대로 유지해야 합니다. 따라서, 저는 원래 기존 문자열에서 문자열이 나오면 JadenCase 문자열로 바꿔주고, 공백이면 아무것도 건드리지 않는 전략으로 갔습니다. ✏️소스 코드 및 결과 #include usin..
2023.06.11 -
[Programmers] Lv2. 거리두기 확인하기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 1. 주어진 대기실을 순회하며, 각 응시자들 좌표(행, 열)값 저장하기 2. 저장한 응시자들 좌표를 중복 없이 2개 뽑아, 거리두기 유무 검사하기 - 맨해튼 거리가 2보다 클 경우에는 거리 두기를 잘 지키고 있다고 판정 - 맨해튼 거리가 2보다 작을 경우에는 거리 두기를 지키지 않고 있다고 판정 - 맨해튼 거리가 2일 경우 (P1, P2가 있다고 가정) - 가로로 한 칸 띄어져 있는 경우 : P1.column + 1 부분을 검사 (P1.column < P2.column) - 세..
2023.06.09