https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 해결방법 1. 카테고리별 옷의 개수를 세서 객체에 저장 후 개수+1을 모두 곱해서 경우의 수 세기 2. 아무것도 입지 않는 경우는 빼줘야 하니 -1하고 반환 🔑 풀이 처음 문제를 읽고 과외할 때 풀던 경우의 수 파트가 생각났다. 상의가 3종류, 하의가 4종류일 때 조합할 수 있는 경우의 수는 3X4=12인 이런 류의 문제. 주어진 예제를 보니 이 문제도 이런 식으로 풀기 위해 배열을 순회하며 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 해결방법 1. 각 프로세스의 우선순위와 인덱스를 이중배열로 저장 2. 큐의 첫 번째 프로세스를 꺼내 나머지 프로세스들과 우선순위 비교 3. 우선순위가 높은게 있다면 현재 프로세스를 맨 뒤에 넣고 없으면 count+1 4. location과 현재 프로세스의 인덱스가 같다면 count 반환 🔑 풀이 찾고자 하는 프로세스의 위치를 알려주는 locationo 변수가 주어지기 때문에 큐에 들어있는 프로..
https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 해결방법 1. 총 사각형의 개수 - (W + H - 최대공약수) 🔑 풀이 처음 문제를 보고 격자칸을 좌표평면, 자르는 대각선을 일차방정식으로 표현하면 되지 않을까 싶었다. 일차방정식의 기울기는 보통 y증가량/x증가량으로 구한다. 예제의 경우로 본다면 W=8,H=12이니 대각선의 기울기 H/W = 4/3이고 방정식으로 표현하면 y = 4/3 x다. x = 0에서 x = 1까지로 본다면 y = 4..
https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 해결방법 1. 승자 (winner)와 패자 (loser)를 확인하여 graph 생성 2. 플로이드-워셜 알고리즘을 사용하여 모든 선수 쌍 (i, j)에 대해 선수 i가 선수 j를 이길 수 있는지 확인 3. 승패가 확정된 경우만 찾아서 반환 🔑 풀이 문제를 읽어보니 어떻게 풀어야할 지 감도 안잡혀서 바로 구글링을 했다😅 모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우에 사..
https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 🤔 해결방법 1. dp 배열을 생성하고 0으로 초기화 2. 각 물건에 대해 가능한 모든 무게(j)에 대해 dp[j] 값을 갱신 (새로운 dp[j]는 기존의 dp[j]와 dp[j - 물건 무게] + 물건 가치 중 큰 값으로 갱신) 3. dp 배열의 k번째 요소 출력 🔑 풀이 처음에는 물건의 무게가 최대 무게와 같은 경우와 작은 경우로..
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 해결방법 1. 두 큐를 하나의 배열로 합치고 원소의 합과 목표값을 구하기 2. 두 포인터를 설정하고 두 포인터 사이 원소들의 합이 목표값보다 크면 start + 1, 작으면 end + 1 3. 합친 배열의 길이 x 2 번의 작업 후에도 목표값과 일치하지 않으면 -1 반환 🔑 풀이 적절한 풀이 방법이 떠오르지 않아 카카오 기술 블로그에 올라온 해설을 참고했고 투 포인터를 사용해 푸는 문제였다...
https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 해결방법 1. 각 노드와 연결된 노드들의 리스트로 그래프 생성 2. BFS를 수행하면서 각 노드까지의 최단 거리를 distances 배열에 저장하고 최대값 개수를 반환 🔑 풀이 bfs로 풀어야 하는 문제라는 생각이 들어 지난번에 백준 DFS와 BFS 문제를 풀 때 정리해논 bfs 기본 코드를 긁어왔다. BFS 기본 코드 // 방문한 정점을 저장하기 위한 배열 const visited = [];..
https://www.acmicpc.net/problem/11441 11441번: 합 구하기 첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 www.acmicpc.net 🤔 해결방법 1. 0인 요소가 n+1개인 배열을 만들고 누적 합산 숫자를 해당 인덱스에 넣어준다 2. 끝지점 요소에서 시작요소-1 까지 뺀 값을 차례로 개행하여 출력한다 🔑 풀이 문제를 읽자마자 바로 구간의 합을 하나씩 더해주도록 풀었다. 역시나 호락호락하지 않은 백준은 시간초과를 뱉어냈다.😥 const input = requ..