목록알고리즘/프로그래머스 (183)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 1. 동일한 2x2 블록을 찾는다. - check 2. 동일한 2x2 블럭을 저장해 놨다가 한 번에 삭제한다. - remove 3. 삭제로인해 생긴 빈 공간을 메꾼다. - move check는 좌측 위에서 우측 아래 방향으로 검사하면 편하고 빈 공간을 메꾸는 것은 우측 아래에서 좌측 위 방향으로 검사하면 스택(테트리스)과 같이 블록들이 빈 공간을 통해 뚝뚝 떨어지는 기능을 구현할 수 있..
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 현재 들고 있는 수에 대한 정보는 (값, 인덱스)이다. 이 수를 스택에 넣을 것이다. 그냥 넣는 게 아니다. 앞서 들어 있는 스택의 수보다 큰 값이라면, 앞서 들어 있는 수의 뒷 큰 수는 현재 내가 들고 있는 수가 된다. 스택에 들어있는 수의 뒷 큰수를 계속 계산하여 현재 들고 있는 수보다 같거나 큰 수가 스택의 top에 있을 때까지 반복한다. 그리고 스택에 푸쉬한다. 현재 들고 있는..
https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 A -> AA -> AAA -> AAAA -> AAAAA -> AAAAE -> AAAAI -> AAAAO -> AAAAU -> AAAE -> AAAEA -> AAAEE -> AAAEI -> AAAEO -> AAAEU -> ... 잘 생각해보면... DFS 방식이다. [A, E, I, O, U] 배열을 생각해보자. A를 먼저 넣고 한 깊이를 증가해 또 배열을 탐색한다. 그럼 또 A를 먼저..
https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 간단히 BFS를 통해 풀 수 있는 문제이다. 미로의 크기가 최대 100x100이지만 방문 여부를 MAP을 사용하여 풀려고 했으나 사용했더니 효율성 부분에서 시간초과로 다 틀려버린다. 방문 여부를 그냥 2차원 배열을 통해 확인하도록 하자. 전체 코드 #include #include #include #include using namespace std; int solution(vector ma..
https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 head, number, tail 부분으로 분할하여 string 3개(head, number, tail)를 저장하여 compare 함수(정렬 함수)를 만들어 정렬한다. 이때 head가 같은경우 number를 비교하도록 compare 함수를 작성한다. 정렬된 string 3개를 붙여 순서대로 answer 벡터에 넣으면 된다. C++로 풀때 sort 함수를 사용하면 동일한 값에 대해 정렬은..
https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 현재 좌표와 다음 좌표를 가지고 있다면 이 두 좌표를 통해 걸어본적이 있는 길인지 확인이 가능합니다. map을 통해 현재 좌표 x,y와 이동할 다음 좌표를 통해 걸어본적이 있는 길인지 확인합니다. (현재 좌표에서 다음 좌표로 map에 등록되어있는지 확인) => 주의! 확인시 양방향으로 확인해야함 양방향: (x,y) => (nx,ny) 그리고 (nx,ny) => (x,y) 1. 만약 걸어..
https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 2번째 행부터 시작한다. 4개의 열을 순차적으로 방문하며 이전 행의 3개의 열(같은 열은 제외)들의 값중 제일 큰 값을 현재 행(2번째 행)의 방문중인 열에 더하면 그 행에 도착할때까지 만들 수 있는 최고점이 된다. 즉, 이전 행을 이용해 큰 점수를 찾아 현재 행에 더하면 최고점이 된다. 이 방법을 끝행까지 차근차근 최고 점수를 만들자. 전체 코드 #include #include #in..
https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 map에 해당 스킬과 해당 스킬을 배우기 위해 필요한 스킬들의 개수를 담을 것입니다. 이렇게 담아놓으면 나중에 스킬 트리를 앞에서부터 읽으면서 해당 스킬을 배울 때 필요한 스킬 개수가 0이라면 바로 배우면 되는 것입니다. 하지만! 해당 스킬을 배울 때 필요한 개수가 0이 아니라면 선행 스킬을 다 배우지 않은 것인데 배울 수 없는 스킬임을 판별할 수 있습니다. 이때 현재까지 배워둔 스킬의..