https://www.acmicpc.net/problem/2342 2342번: Dance Dance Revolution 입력은 지시 사항으로 이루어진다. 각각의 지시 사항은 하나의 수열로 이루어진다. 각각의 수열은 1, 2, 3, 4의 숫자들로 이루어지고, 이 숫자들은 각각의 방향을 나타낸다. 그리고 0은 수열의 마 www.acmicpc.net 1. Logic DDR에서 이전에 갔던 곳을 똑같은 경우의 수로 갈 수 있기 때문에 메모이제이션을 활용하여 풀이했다. 규칙이 직관적으로 보여서 topdown으로 풀이하기 쉬웠다. 밟고 있던 위치를 다시 밟을경우 +1 처음 시작점인 0의 위치에서 움직일 경우 +2 인접한 위치로 움직일 경우 +3 반대편으로 움직일 경우 +4 처음에는 모든 경우의 수를 다 세줘서 보기..
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. Logic string과 숫자를 가지고 놀아야 하기 때문에 map자료구조가 적절할 것이라고 판단했다. friends배열에 있는 순서대로 인덱스를 매겨주고 서로 몇번 주고받았는지 확인했다. 핵심은 2중 for문에 있는데, 이중 계산을 막기 위해 선물을 받는 경우만 계산해줬다 코드는 아래와 같다. 2. Code #include using namespace std; map nameToIdx; i..
https://school.programmers.co.kr/learn/courses/30/lessons/250137?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. Logic 그냥 구현문제 부분문제를 나누자면 1. 몬스터에게 공격받을 때 2. 몬스터에게 공격 안받을 때 (붕대 감아야 함) 부분문제를 나눠서 상황에 따라 구현하면 실수를 줄일 수 있다. 2. Code #include #include #include using namespace std; int solution(vector bandage, int health, vect..
https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. Logic 무조건 한번은 경기를 해야하기 때문에 안할 수는 없고 순서를 바꿔줄 수는 있다. 그렇기 때문에 A를 항상 작게 유지시켜 줘야한다. 오름차순 정렬을 한 후 A
https://school.programmers.co.kr/learn/courses/30/lessons/148653?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. Logic 항상 +1돌 or -1돌을 사용하여 1의 자리를 0을 만든 후에 큰 숫자로 빼주는 방법이 최선의 방법이다. 부분문제가 3가지로 쪼개지는데 1. 1의 자리가 6이상인 수 (6~ 9) 2. 1의 자리가 5인 수 (5) 3. 1의 자리가 4이하인 수 (0~4) 1번의 경우에는 10을 만들어준 후 10을 만드는데 사용한 +1돌의 갯수를 계산해서 더해주고 10을 만..
https://school.programmers.co.kr/learn/courses/30/lessons/12980# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. Logic 짝수일 때에는 2로 나눠주고 홀수일 때에는 -1을 해주고 2로 나눠준다. 2. Code #include using namespace std; int solution(int n) { int ans = 0; while(n) { if(n % 2 == 1) ans++; n /= 2; } return ans; } 3. Feedback 처음 문제를 보고 아래의 코드와 같이 코딩을 했지만 i..