목록알고리즘/프로그래머스 (183)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 프로그래머스 lv.3 단계 문제라 다들 DFS는 잘 알고 있을거라... 설명은 생략하고 간단히 처음 방문하는 노드라면 DFS를 통해 쭉 연결된 모든 노드를 방문하고 answer + 1을 해주면 된다. 전체 코드 import java.util.*; class Solution { public void dfs(int[][] computers, boolean visit[], int idx) {..
https://school.programmers.co.kr/learn/courses/30/lessons/12902#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 n이 홀수일때는 만들 수 없다. 0가지이다. n이 2일때 위와 같이 3개가 존재한다. n이 4일때 n이 2인 타일 모양에다가 또 n이 2일때 타일들을 붙여 n이 4인 타일을 완성할 수 있다. 여기에 특수한 모양의 2가지가 더 추가된다. 여기서 n이 4일때 answer를 수식으로 구하면 f(4) = f(2) * 3 + 2가 된다. f(4)에서 길이 2를 뺀 f(2)에서 길이 2짜..
https://school.programmers.co.kr/learn/courses/30/lessons/181188# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 e를 기준으로 정렬을 합니다. 순차적으로 방문하며 다음 과정을 거칩니다. 다음 미사일의 s가 현재 요격한 미사일의 e보다 크거나 같다면 새로운 요격 미사일이 필요합니다. 다음 미사일의 s가 현재 요격한 미사일의 e보다 작다면 앞서 요격한 미사일(현재 요격한 미사일) 때 사용한 요격 미사일로 막을 수 있습니다. 전체 코드 #include #include #include using na..
https://school.programmers.co.kr/learn/courses/30/lessons/42860#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 현재 문자를 위, 아래로 움직여 최소로 만드는 방법은 forward : A에서 B, B에서 C 방향으로 정방향으로 하나씩 이동하는 횟수 backward : A에서 Z, Z에서 Y 방향으로 하나씩 이동하는 횟수 중에서 최솟값을 사용하면 된다. 최소로 좌, 우로 이동하는 방법은 DFS를 통해 구현 했다. 이때 좌, 우로 이동할때 방향을 2번 이상 트는것은 효율적이지 않아 최솟값이 나..
https://school.programmers.co.kr/learn/courses/30/lessons/160585# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 먼저 올바른 틱택토라고 가정하고 answer를 1로 초기화한다. 다음과 같은 올바른 틱택토가 될 수 없는 상황을 통해 answer를 0으로 초기화 하자. 판을 보니 승자가 한명이 아니다. 한번씩 번갈아 놓지 않은 상황이다. 누구 하나가 연속으로 둠 X는 후공이라 O의 개수보다 많을 수 없다. 선공이 이겼을땐 후공의 개수+1이 선공의 개수가 된다. 후공이 이겼을땐 선공의 개수와 동일하..
https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 m을 통해 A가 B에게 보낸 선물 개수를 관리합니다. gift의 i번째 원소가 "muzi frodo" 값을 갖는다면 m에 "muzi frodo"를 Key로하는 Value의 값을 1 증가시킵니다. sendCnt, reveiveCnt를 통해 보내거나 받은 선물을 관리합니다. m의 값을 갱신할때 동시에 A가 보낸 선물 개수와 B가 받은 선물 개수를 증가시킵니다. month를 통해 다음달에 ..
https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 생성된 정점은 다음 특징을 갖는다. 생성된 정점으로 진입하는 노드의 개수는 0개이다. 생성된 정점으로부터 진출하는 노드의 개수는 2개이상이다. (이것이 빠지면 막대 그래프의 젤 마지막 노드를 생성된 노드로 오해 가능) 이제 위의 특징으로 생성된 노드를 찾았다면 생성된 노드로부터 진출하는 노드는 각각의 그래프의 임의의 정점을 가리킨다. 즉, 생성된 노드의 진출 노드 개수가 그래프의 총 ..
https://school.programmers.co.kr/learn/courses/30/lessons/150369#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 최소 이동 거리로 배송과 픽업을 모두 완료하려면 계속 가장 먼 거리의 집을 먼저 방문하며 배송과 픽업을하면 된다. 가장 먼 거리의 집(픽업 또는 배송이 필요한 집)을 가는길에 배송이 필요한 가장 먼 집들을 배송을 진행하고 픽업이 필요한 가장 먼 집들을 픽업을 진행하면 된다. 전체 코드 #include #include #include #include using namespace ..