숫자 변환(BFS)
·
공부/Code Cata
https://school.programmers.co.kr/learn/courses/30/lessons/154538처음에 문제를 읽고 브루트포스로 각 x마다 3가지 경우를 다 해봐야되나 생각했지만, x와 y의 최대 값이 백만으로 크기 때문에 비효율적이고 시간 초과가 발생할 것이라고 생각했다.최소 연산 횟수를 구하는 문제이고 이것은 최단거리 문제와 유사해보였다.각 수를 정점으로 보고, 연산을 간선으로 보며 너비 우선 탐색인 BFS로 문제를 해결하는 것이 가장 적합해보였다.✅ 구현 코드#include #include using namespace std;int solution(int x, int y, int n){ queue> q; vector visited(y + 1, false); q.pu..
롤케이크 자르기
·
공부/Code Cata
https://school.programmers.co.kr/learn/courses/30/lessons/132265문제의 제한사항을 확인하고 브루트포스 기법으로는 해결할 수 없다는 생각이 들었다.그래서 루프를 돌면서 현재 인덱스를 기준으로 왼쪽과 오른쪽을 나눠 set에 저장한 뒤, 두 개의 set 크기가 같다면 answer의 값을 증가 시켜주는 방향으로 문제를 해결하려했다.✅ 초기 작성 코드#include #include #include using namespace std;int solution(vector topping) { int answer = 0; for(int i = 0; i left(topping.begin(), topping.begin() + i + 1); unord..
뒤에 있는 큰 수 찾기 / stack
·
공부/Code Cata
https://school.programmers.co.kr/learn/courses/30/lessons/154539더보기앞에서부터 각 원소에 대해 차례대로 루프를 돌며 자신보다 큰 뒤의 수를 찾게 되면, 최악의 경우 O(n^2)의 시간 복잡도가 발생하게된다.n 값이 매우 커서 어떻게 접근해야할지 한참을 고민하다가 자신보다 뒤에 큰 수를 구하는 것이기에 뒤에서 부터 탐색하면 어떨지 생각해보게 되었고, 현재 탐색하는 원소 보다 이전에 큰 수가 있었는지 확인하기 위해,  이전에 탐색한 큰 수를 저장할 컨테이너로 stack을 활용해보도록 했다.✅ 구현 코드#include #include #include using namespace std;vector solution(vector numbers) { int ..
스타트와 링크 문제 / 백트래킹
·
공부/Code Cata
📌 스타트와 링크 문제더보기✅ 구현 코드*전체 코드더보기#include #include #include using namespace std;// 능력치 계산 메서드void CalculatePower(const vector>& SIJ, const vector& Team, vector& Partner, int Idx, int& Sum){ if (Partner.size() == 2) { Sum += SIJ[Partner[0]][Partner[1]]; Sum += SIJ[Partner[1]][Partner[0]]; return; } for (int i = Idx; i >& SIJ, const vector& A_Team, const vector& B_T..
주차 요금 계산 문제
·
공부/Code Cata
📌 주차 요금 계산 문제더보기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 읽다가 스크롤 압박이..;각 차량마다 00:00 ~ 23:59 이내에 주차 되었던 모든 누적 시간을 구해서 한 번에 요금 처리를 해야되었다. 일반적으로 출차하고나서 다시 입차했을 때 기본 요금이 새로 부가되지만, 문제에서는 모든 누적 시간을 합해 한 번에 요금을 처리한다는 주의점이 있었다.문제가 길다보니 이 부분을 놓쳐서 계산하는 로직을 수정해야했다..그리고 또 한가지 주의할 점은 입차 기록이 있는데 출차 기록이 없는 차량은 23:59에 출차 했다고 가정하고 요금을 부여한다는 점이었다. ✅ 구현 코드*전체 코드더보기#in..
k진수에서 소수 개수 구하기
·
공부/Code Cata
https://school.programmers.co.kr/learn/courses/30/lessons/92335문제가 다소 복잡해 보여서 어떤 순서로 해결해야될지 길게 고민한 끝에 아래와 같이 대략적인 코드 흐름을 짜고 코딩을 시작했다.1️⃣ n을 k진수로 바꾸어서 string에 저장2️⃣ 루프를 돌며 현재 숫자가 '0'이 아니면 string temp에 저장3️⃣ '0'이라면 지금까지 저장했던 temp가 소수인지 판단✅ 구현 코드*전체 코드더보기#include #include #include // sqrt 사용하기 위한 헤더using namespace std;// 소수인지 판단하는 메서드bool isPrime(const long long& tar){ if (tar 0) { c..