Programmers Review

https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 왼손과 오른손중 어느 손이 키패드에 가까운지 찾는 문제이다.단 1, 4, 7 인 경우 반드시 왼손으로 하고, 3, 6, 9인 경우 오른손으로 한다.따라서 위 경우는 왼손이나 오른손으로 출력한다. 마지막으로 2, 5, 8, 0인 경우 왼손과 오른손 중 가장 가까운 손을 찾아야한다.이 경우는 dfs를 사용해서 어느 손이 가장 작은 값인지 찾았다. #include #include #include..
https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 공백을 기준으로 단어를 판단하면 해결할 수 있다.이때 짝수 인덱스는 대문자로 홀수 인덱스는 소문자로 만들어야한다.주의할점은 짝수 인덱스가 원래 대문자인 경우 대순자로 홀수 인덱스가 원래 소문자인 경우 소문자로 저장해야한다.이를 위해 짝수 일때 대문자인지 홀수 일때 소문자인지 판단하면 된다. #include #include using namespace std;int N;string solut..
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 문제를 접하고 이중 반복을 사용해 해결하고자 하였다.이중 반복을 사용하면 최악의 경우 1,000,000^2의 반복을 실행해야 하기 때문에 대략 2초가 걸릴 수 있다.따라서 시간 초과가 발생 하였다. 이 문제를 해결하기 위해선 배열 2개를 사용해야한다.answer 배열은 numbers 배열과 같은 크기로 할당하고 -1로 초기화한다. 다음 인덱스를 저장할 배열을 생성한다.현재 검사할 값이 인덱스를..
https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 대실 시간이 겹치는 횟수를 구하면 해결할 수 있다.주어진 배열에는 입장 시간과 퇴실 시간이 주어진다. 입장 시간과 퇴실 시간은 ':'을 기준으로 시간과 분이 나누어 진다.따라서 문자열에서 2개의 요소를 substr하고 나머지는 분으로 사용한다. 이때 시간에 100을 곱해서 15:10을 1510으로 만들어준다.하지만 퇴실 시간의 경우 10분의 청소 시간이 있으므로 입장 시간과 동일한 연산에..
https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 bfs를 이용한 길 찾기를 통해 해결할 수 있다.문제에서 모든 통로와 출구, 레버, 시작점을 여러번 지나갈 수 있는 조건은 문제 해결 시 많은 어려움을 가져다 주었다. 이 조건은 레버를 찾기 전까지 성립하지 않는 것을 알게 되었다.그 이유는 이동 횟수가 최소가 되기 위해선 bfs나 dfs를 사용해야한다. 하지만 레버를 찾기 전에 같은 위치를 여러번 이동할 수 있다면, 최소 이동을 할 수 ..
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 BFS를 사용하는 문제이다.알고리즘은 다음과 같다. 1. 처음 위치와 끝 위치를 알기위해 board 배열을 순회한다.2. bfs를 시작하기 전 queue에 시작 위치의 y좌표와 x좌표와 counter를 삽입한다.3. 방문 배열의 y, x 좌표를 방문했다고 표시한다.4. y좌표와 x좌표가 목적기 좌표인 경우 answer와 counter 중 최소인 값을 저장한다.5. dx와 dy 배열을 통해..
https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 처음 접근 했을 때 곡괭이를 좋은 순서대로 사용하였다.이유는 최소 피로도를 구하는 것이기 때문에 다이아 -> 철 -> 돌 곡괭이 순으로 광물을 캐면 최소 피로도가 나온다고 생각 하였다. 이 생각은 예시 상황에는 맞는 생각이였지만 철 -> 다이아 순으로 캘 때 최소가 되는 상황에서는 적합하지 않는 생각이였다.또한 광물을 다 캤거나 곡괭이 수가 없을 경우도 사용할 수 없는 생각이였다.따라서 ..
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 DP를 사용해 해결할 수 있다.숫자 x를 y로 만드는 방법은 3가지가 있다.1. n을 x에 더하기2. x에 2를 곱하기3. x에 3을 곱하기 위 방식을 생각해 본다면 y에서 x로 1씩 감소시키면서 반복을 진행할 때 1씩 감소시킨 값이 3이나 2로 나누어 떨어지거나 n과 뺐을 때 0보다 큰 경우 계속해서 연산할 수 있다는 것을 알 수 있다.따라서 연산이 가능할 때 연산 횟수가 최소인 경우를..
hanseongbugi
'Programmers Review' 카테고리의 글 목록 (10 Page)