[프로그래머스/C++ 문제 풀이] Lv. 1 - 추억 점수
·
코딩테스트/프로그래머스 (Lv. 1)
문제 설명사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다.그리워하는 사람의 이름..
[프로그래머스/C++ 문제 풀이] Lv. 1 - 2016년
·
코딩테스트/프로그래머스 (Lv. 1)
문제 설명2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.제한 사항2016년은 윤년입니다.2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)입출력 예문제 풀이이번 문제는 특정 날짜의 요일을 구하는 문제입니다. 간단히 생각해보면 같은 요일은 7일마다 반복되므로, 주어진 a와 b를 전부 b 형식(일)으로 변환하여 7로 나눈 나머..
[프로그래머스/C++ 문제 풀이] Lv. 1 - 포켓몬
·
코딩테스트/프로그래머스 (Lv. 1)
문제 설명당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2번) 폰켓몬을 선택첫 번째(..
[프로그래머스/C++ 문제 풀이] Lv. 1 - 기사단원의 무기
·
코딩테스트/프로그래머스 (Lv. 1)
문제 설명숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다.각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다.예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이 2인 무기를 ..
[프로그래머스/C++ 문제 풀이] Lv. 1 - 모의고사
·
코딩테스트/프로그래머스 (Lv. 1)
문제 설명수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요..
[프로그래머스/C++ 문제 풀이] Lv. 1 - 소수 만들기
·
코딩테스트/프로그래머스 (Lv. 1)
문제 설명주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.제한 사항nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.입출력 예 입출력 예 #1[1,2,4]를 이용해서 7을 만들 수 있습니다. 입출력 예 #2[1,2,4]를 이용해서 7을 만들 수 있습니다.[1,4,6]을 이용해서 11을 만들 수 있습니다.[2,4,7]을 이용해서 13을 만들 수 있습니다.[4,6,7]을 ..
[프로그래머스/C++ 문제 풀이] Lv. 1 - 소수 찾기
·
코딩테스트/프로그래머스 (Lv. 1)
문제 설명1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.)제한사항n은 2이상 1000000이하의 자연수입니다.입출력 예 입출력 예 #11부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #21부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환문제 풀이이번 문제는 일정 범위 내의 소수를 판별하는 문제입니다. 소수는1과 자기 자신만을 약수로 가지는 수이기에 저는 소수를 판별하기 위해 2부터 N까지 자기 자신을 제외한 배수들을 체크하고, 체크가 되지 않은 수(소수)를 세어 문제를 해결하였습니다. 기본적으로 "에라토스테네스의 체" 알고..
[Algorithm] 에라토스테네스의 체 (소수 판별)
·
코딩테스트/알고리즘
개요"에라토스테네스의 체" 알고리즘은 고대 그리스 수학자 에라토스테네스가 만들어 낸 소수를 찾는 방법으로, 마치 체로 치듯이 수를 걸러낸다고 하여 "에라토스테네스의 체"라고 부릅니다. 주로 대량의 수에서 소수를 판별하기 위해서 사용되는 알고리즘이며, 종종 코딩테스트 문제에서 보이기에 정리해보는 시간을 가지게 되었습니다.소수 판별 방법소수는 1과 자기 자신 만을 약수로 가지는 수입니다. 만약 2에서 100 사이의 소수를 구해야 하는 문제라면 각각의 수의 약수가 존재하는지 확인하는 방법을 사용할 수도 있습니다. 하지만 위 방법을 사용하면 2부터 100사이의 모든 수를 순회하며 자신을 제외한 약수가 존재하는지 체크해야 하므로 매우 비효율적입니다. 약간 발상을 바꿔 생각해보면 결국 2 ~ 100 사이의 수 중에..