목록알고리즘/프로그래머스 (183)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/72412#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 다음과 같은 지원자가 있다면 언어 직군 경력 소울 푸드 java backend junior pizza 다음과 같이 "-"를 포함한 모든 조합을 구한다. 저렇게 한 조합이 완성된다면 map에 key로 조합과 해당 지원자의 점수를 넣어 관리한다. 모든 지원자들의 정보를 map에 조합으로 다 넣었다면 탐색을 위한 정렬을 map에 존재하는 모든 key에 대해 오름차순으로 정렬해준다. 이..
https://school.programmers.co.kr/learn/courses/30/lessons/92342#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 라이언이 과녁에 맞출 수 있는 모든 경우의 수를 구해 어피치 과녁과 비교하여 점수를 계산한다. 라이언이 승리하면서 점수차가 클때 answer을 갱신해주자. 젤 점수가 낮은 과녁부터 채워나가기에 라이언이 가장 큰 점수 차이로 우승할 수 있는 방법이 여러 가지 일 경우, 가장 낮은 점수를 더 많이 맞힌 경우를 return 해주세요. 의 조건을 따로 체크해주지 않아도 통과할거라 생각하..
https://school.programmers.co.kr/learn/courses/30/lessons/150368?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 각각의 이모티콘에 모든 할인율을 붙여본다. 할인율에 따른 가입자 수와 판매액을 계산해본다. 가입자를 늘릴 수 있거나 가입자 수는 그대로라도 판매액을 늘릴 수 있다면 답으로 갱신한다. 전체 코드 #include #include using namespace std; void sale(vector users, vector emoticons, int discount[8..
https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 시작시간을 기준으로 plans를 오름차순으로 정렬한다. 문제에서 요구한 구현 방법으로 그대로 구현한다. 그러나 시간을 11:11 문자열 형태로 제공하기에 이것을 다루기 편하기위해 분단위로 변경해서 계산한다. 시작시각을 분단위로 변환했고 다른 과제의 시작시각 분단위보다 작다면 빨리 시작한다는 뜻이다. 위의 방식으로 분단위로 변환해서 계산하면 과제 시작 시간과 종료시간, 남은시간 등을 관..
https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 1사분면의 점들의 개수를 구해 *4를 해주면 모든 점들의 개수를 구할 수 있다. 작은 원과 큰 원 사이의 점들을 구하기 위해 원의 방정식을 사용한다. x는 1부터 r2까지 반복문을 돌리며 각 원의 높이 y를 구한다. 구한 y를 각각 내림과 올림을 해준다. r1 ceil, r2 floor 하는 이유 : r1보다 크거나 같고 r2보다 작거나 같은 구간의 정수를 구해야하기 때문에 r1을 올..
https://school.programmers.co.kr/learn/courses/30/lessons/131130#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 bool 배열로 각 상자의 방문 여부를 관리한다. 반복문으로 모든 상자를 돌며 방문 여부를 확인한다. 방문하지 않은 상자라면 방문하여 타고타고 들어가 연결된 모든 상자를 방문한다. 타고타고 들어가 방문한 상자의 개수를 vector 변수에 넣어준다. 모든 상자를 방문하면 vector를 내림차순으로 정렬한다. 0번째 1번째 원소의 곱을 정답으로 쓴다. 주의! 한번에 모든 상자를 방..
https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 큰 틀에서 풀이 방법은 다음과 같다. 컬럼들의 총 개수를 가지고 만들 수 있는 조합을 구한다. (총 개수가 4라면 0, 1, 2, 3, 01, 02, 03, ...) 01은 0번째 컬럼 1번째 컬럼을 뜻함. 위에서 선택된 조합들을 가지고 컬럼값들을 모두 붙여본다. 붙여 만들어진 문자열이 기존에 만들어진 문자열이라면 유일성을 만족하지 않는것이다. 유일성을 검사했으니 이제 최소성도 검사한다..
https://school.programmers.co.kr/learn/courses/30/lessons/172927#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 모든 곡괭이를 드는 경우를 계산하여 풀면 된다! 코드로 보면서 이해하는게 좋을듯하다! 현재 코드에선 m[Key]로 Value를 찾았지만 C++ map 사용시 find는 Key로 찾는다면 이 함수는 Value를 반환해주는것이 아니기에 item->second로 Value에 접근해야한다. 전체 코드 #include #include #include #include using names..