목록Programmers (190)
GitHubSeob

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 연속으로 고르지 못하고 하나를 고르면 그 양 옆은 고를 수 없는 문제라 DP를 이용해 풀었다. 원형이기 때문에 2가지 경우로 나누어 문제를 풀었다. 첫 번째, 1차원 벡터로 봤을 때, 맨 앞을 선택할 때. 두 번째, 맨 앞을 선택하지 않을 때. sticker.insert(sticker.begin(), 0); sticker.insert(sticker.begin(), 0); sticke..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 어느정도 틀은 잡았는데 구현하는 부분에서 고생을 했다. 반복문을 통해 보석들의 배열을 탐색하면서, map을 이용해 기존 보석의 위치를 지우고 새 보석의 위치를 저장하고, 가진 보석들 중 가장 작은 인덱스가 시작부분으로 두고, 새 보석을 찾을 때마다 해당 위치를 끝 부분으로 뒀다. 가장 작은 인덱스를 찾으려고 벡터를 이용해 map의 value를 기준으로 정렬을 해봤는데 잘 안됐다.. ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 모든 경우의 수를 탐색해 문제를 풀었다. 밴을 당한 아이디 기준으로 유저 아이디와 크기가 같은지, '*'을 제외하고 모두 같은지를 판별한다. 삼중 반복문이 끝났으면 밴을 당한 아이디를 모두 찾았을 것이다. 이제 그 아이디를 가지고 조합을 짜야한다. 조합을 짤 때 순서와 관계없이 아이디 목록의 내용이 동일하다면 같은 것으로 처리한다. 그리고 제제 목록에 같은 아이디가 여러 개 중복될 ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 맵과 우선순위 큐를 이용해서 풀었다. 맵 안에 우선순위 큐가 들어가 복잡해 보일 수 있지만, 풀이는 간단하다. map를 선언해서 장르별로 총 재생된 횟수를 기록한다. (string = 장르, int = 재생된 횟수) map를 선언했는데, 우선순위 큐는 pair 형태로 되어있다. {재생된 횟수, 곡 번호} struct compare { bool operator()(pair& song1..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 모든 아파트에 전파를 전달하기 위해, 이미 설치된 기지국을 제외하고 최소 몇 개를 설치해야 되는지 구하는 문제이다. 제한사항을 보면 기지국의 위치를 알려주는 벡터인 stations는 오름차순으로 정렬되어 있다고 되어있다. 따라서 정렬할 필요 없이 1부터 n까지 돌면서 기지국을 설치하면 된다. 1부터 탐색하면서 이미 설치된 기지국 전파에 닿는지를 확인한다. 닿지 않는다면 효율적인 설치..

문제 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/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 우선순위 큐를 이용하여 풀었다. 정렬을 한 뒤, 이번 귤과 다음귤이 같지 않으면 cnt값을 우선순위 큐에 push 한다. 그렇게 되면 우선순위 큐에는 크기가 같은 귤들이 몇 개씩 있는지, 개수만 들어간다. 따로 정렬 설정을 안 했으므로 우선순위 큐 top부분에는 가장 큰 숫자가 들어간다. 반복문을 돌려 K가 0 이하가 될 때까지 K - pq.top()을 하여 상자에 귤을 담는다. ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 n이 1이면 1, n2이 2이면 1+1, 2 = 2개 n이 3이면 1+1+1, 2+1, 1+2 .... n개는 n-2의 모든 경우에서 +2를 더한 것과 같고, n-1의 모든 경우에서 +1을 더한 것과 같다. 따라서 DP[n] = DP[n-1] + DP[n-2]이다. n이 0일 때, 1일 때는 따로 1로 값을 저장하고, 2부터는 반복문을 돌리면 된다. 나머지 연산 꼭! 코드 #incl..