https://programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 투포인터 기본 문제이다. 일단 num배열에 모든 숫자들을 차례로 넣는다. 그리고 left와 right 인덱스 값을 1로 둔다. right값이 n + 1일때까지 반복문을 돌며 sum이 n보다 커졌을 때는 left값을 1씩 더해주며 빼줬고, sum이 n보다 작을 때는 right값을 1씩 더해주며 더해줬고, 만약 sum이 n일 때는 카운트해줬다. #include #include using na..
🍞 Algorithm/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 1칸일 때는 1 2칸일 때는 1 + 1, 2 3칸일 때는 1 + 1 + 1, 1 + 2, 2 + 1 이므로 피보나치 규칙을 찾을 수 있다. #include #include using namespace std; int dp[2001]; int dynamic(int n){ dp[1] = 1; dp[2] = 2; for(int i = 3; i
https://programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 우선순위 큐는 기본 정렬이 내림차순이기 때문에 greater를 통해 오름차순으로 정렬해준다. 우선순위 큐에 스코빌 지수를 넣고, 무한 반복문을 돌면 되는데 탈출 조건이 두가지가 있다. 첫번째로는 pq.size()가 2보다 작으면 pop을 두번 할 수 없고 모든 음식의 스코빌 지수를 K이상으로 만들 수 없다는 뜻이기 때문에 -1을 return 해준다. 두번째로는 pq.top()이 K보다 크거나 같을 때..
https://programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 이 문제는 10진수를 2진수로 바꾼 뒤, 1의 개수만 같으면 되기 때문에 특별히 reverse를 해주지 않았다. 처음 n을 2진수로 변경했을 때 1의 개수를 cnt1에 담고, n을 계속 1씩 더하여 2진수로 변경했을 때 1의 개수를 res에 담아서 두 값이 같다면 무한 반복문을 탈출하여 n값을 리턴하는 식으로 구현했다. #include #include using namespace std; string..
https://programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 bfs의 가장 기본 알고리즘이다. 만약 dist[maps.size() - 1]maps[0].size() - 1] 부분이 0이라면 도달하지 못했다는 뜻이므로 -1을 리턴해준다. #include #include using namespace std; int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, -1, 0, 1}; int dist[101][101]; int bfs(int x, ..
https://programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 이 문제는 3진법의 변형 문제이다. 10진수에서 3진수를 구할 때의 알고리즘을 쓰면 되는데 만약에 나머지가 0이라면 0 대신 4를 붙여주면 되는 문제이다. 더하여, n의 값에 -1을 해줘야한다. 풀이 1 #include #include #include using namespace std; string solution(int n) { string answer = ""; while(n != 0){ if(..
https://programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 이 문제는 홀수인지, 짝수인지 구분해서 해결해야하는 문제이다. 짝수일 경우에는 비트의 끝자리가 항상 0이기 때문에 다음 숫자가 들어오면 끝자리가 0에서 1로 바뀌게 된다. 그러므로 x보다 큰 값은 항상 현재값 + 1이 된다. 그러나, 홀수일 경우에는 비트의 끝자리가 항상 1이기 때문에 **올림수**가 발생하게 된다. 1이 연속하는 수를 세어 3번 연속이라면 2의 2제곱, 4번 연속이라면 2의 3제곱 ..
https://programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 2 x n 타일링은 피보나치 규칙이다. 그러므로 다이나믹 프로그래밍의 기본대로 구현하면 된다. #include #include using namespace std; int dp[60001]; int dynamic(int n){ dp[1] = 1; dp[2] = 2; for(int i = 3; i
https://programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 moves횟수만큼 반복문을 돌려주고 moves가 해당하는 열에 0이 아닌 것이 있으면 인형이 있다는 뜻이므로 스택에 push를 해준다. 만약 stack이 비어있지 않고 top이 넣는 인형과 같으면 두 개씩 터지는 것이므로 2를 답에 더해준다. 여기서 가장 중요한 부분은 break인데 0이 아닌 것을 찾았으면 한 번 실행만 하고 다음 move로 넘어가야 된다. 풀이1 #include #include #..
https://programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 문제가 길어 당황할 수 있지만, 단계별로 해나가면 풀 수 있는 문제이다. 단계를 보면 문자를 제거하라는 조건이 있는데 여기서 공백으로 치환해줬다. 공백으로 치환해줬으면 erase와 remove 함수를 써서 지워줘야 한다. #include #include #include using namespace std; string solution(string new_id) { string answer = ""; ..