목록Programmers/Level 3 (26)
GitHubSeob

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 B팀이 승점을 가장 높이는 방법을 구하는 것이다. 그래서 A팀의 승점은 신경 쓰지 않고 문제를 풀었다. 먼저 A팀을 내림차순으로 정렬한다, lower_bound를 이용할 것이기 때문에 B팀은 오름차순으로 정렬한다. A팀의 점수를 탐색하면서 B팀에 A팀 점수+1 값이 있는지를 lower_bound를 이용해 확인한다. 만약 있다면 B팀의 승점을 1 더하고 사용했으므로 삭제한다. 만약 없..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 먼저 벡터를 진입지점이 작게, 진출지점이 작게 정렬한다. 진입, 진출 지점의 최솟값은 -30,000이므로, 감시카메라의 좌표를 나타내는 coord변수를 -30,001로 설정한다. 반복문을 돌면서 감시카메라가 이번 차량의 진입 지점보다 작다면, 감시카메라를 새로 설치한다. 이미 설치를 했는데, 만약 진출 지점보다 먼 감시카메라가 있으면 더 설치하지 않고 감시카메라를 옮긴다. 코드 #i..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 플로이드 와샬 알고리즘을 통해 문제를 풀었다. 결과인 results에는 [0] 선수가 [1] 선수를 이겼다는 정보가 담겨있다. 그 말은 [1] 선수는 [0] 선수한테 졌다는 의미도 된다. 따라서 두 정보를 벡터를 만들어 저장한다. 이기면 1, 지면 -1로, 상대전적이 없으면 2로 두었다. 자기 자신과 싸울 수는 없으므로 반복문을 통해 [idx][idx] = 0으로 설정한다. A가 B..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 처음에는 DFS로 풀어봤는데 결과가 좋지 않아서 질문글을 봤더니 다른 알고리즘으로 푸는 문제였다. 다익스트라 알고리즘으로 풀 수 있어서 따로 공부를 하고 풀었다. 해당 알고리즘을 모르고 풀 때와 알고 풀 때 푸는 시간이 확연히 차이 났다.. 이 문제에서는 지점이 3개가 나온다 A, B, S. 따라서 A, B, S지점으로 부터 모든 지점까지의 최소 요금을 모두 알아야 한다. A->x ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 선입 선출 스케줄링 문제를 풀고 나니까 쉬웠다. 똑같이 파라메트릭 서치로 풀면 된다. 선입 선출 스케줄링에서는 작업을 시작하는 부분을 구해야 했지만, 이 문제는 끝나는 부분을 구하면 된다. 주의할 점은 범위이다, 최대범위가 1,000,000,000 * 1,000,000,000이므로 long long형을 쓴다. 문제에 있는 예시를 보자. n = 6, times = [7, 10], an..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12920 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 처음에는 문제가 이해가 안 갔다. 한 코어에서 작업이 끝나면 작업이 없는 코어가 바로 다음 작업을 수행합니다. 이 부분을 보고 각각의 코어가 각각의 작업을 동시에 할 수 없나?라고 생각을 했다. 그래서 문제에 대한 다른 블로그를 찾아봤더니 동시에 할 수 있는 거였다. 두 번째 문제로는 마지막 작업을 처리하는 코어의 번호를 return하라길래 마지막에 혼자 남아 작업하는 코어의 번호를..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 백준에서 DP로 풀었던 '1로 만들기'와 유사한 문제이다. 먼저 점수는 1~20, 1~20의 2의 배수, 1~20의 3의 배수, 50점 이렇게 있다. 셈을 하기 귀찮으므로 코드를 돌려 겹치는 부분을 제거했다. 여기서 중요한 점은 횟수는 최소로 하되, 횟수가 같으면 싱글(1~20), 불(50)을 최대한 많이 맞혀야 한다. 이중탐색을 통해 1점부터 시작하여 모든 과녁을 맞히는 경우를 ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/138475 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 1. 사진을 절반으로 y와 x가 같은 부분을 기준으로 접으면 똑같이 일치한다. 따라서 절반의 부분만 이중 반복문을 통해 구할 것이다. 2. 그다음은 우선순위 큐를 이용해 top부분이 횟수가 가장 큰 수로 정렬한다. 3. 정렬된 우선순위 큐를 통해 starts의 원소들과 비교하고 answer에 값을 저장한다. 주의할 점으로는 우선순위 큐를 이용하기 때문에 starts벡터가 오름차순으..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 순위는 근무 태도 점수 + 동료 평가 점수의 합산으로 정한다. 본인보다 근무 태도 점수, 동료 평가 점수 둘 다 높은 사람이 있는 경우, 순위에서 제외된다. 이중 반복문을 통해 합을 내림차순으로 탐색하면서, 다른 점수들과 비교하면서 순위에서 제외되는지를 판단했다. int idx(0), rank(1), cnt(0); int sum(0), work(0), peer(0), prev(0)..