본문 바로가기

프로그래머스 코딩테스트 문제/Level 166

[프로그래머스] - 체육복(C#) 체육복 오늘은 탐욕법(Greedy) 카테고리에 속해있는 "체육복" 문제를 풀어보도록 하겠습니다. 이 문제의 정답률은 55%입니다. 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담.. 2023. 9. 15.
[프로그래머스] - 숫자 짝꿍(C#) 숫자 짝꿍 오늘 풀어볼 문제는 "숫자 짝꿍" 입니다. 제목만 보고는 어떤 문제가 나올지 잘 예상이 안갑니다. 문제를 살펴보겠습니다. 문제 설명 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 .. 2023. 9. 13.
[프로그래머스] - 옹알이(2)(C#) 옹알이(2) 오늘은 "옹알이(2)" 문제를 풀어보도록 하겠습니다. 해당 문제의 정답률은 57%입니다. 바로 문제 살펴보겠습니다. 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. 입출력 예 babbling result.. 2023. 9. 12.
[프로그래머스] - 로또의 최고 순위와 최저 순위(C#) 로또의 최고 순위와 최저 순위 오늘은 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제로 출제된 "로또의 최고 순위와 최저 순위" 문제를 풀어보도록 하겠습니다. 해당 문제부터는 레벨1이지만, 정답률이 57%로 한번에 떨어집니다. 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위 당첨 내용 1 6개의 번호가 모두 일치 2 5개의 번호가 일치 3 4개의 번호가 일치 4 3개의 번호가 일치 5 2개의 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다... 2023. 9. 11.
[프로그래머스] - 기사단원의 무기(C#) 기사단원의 무기 오늘은 "기사단원의 무기" 문제를 풀어보도록 하겠습니다. 해당 문제가 마지막 60% 정답률의 문제입니다. 다음부터는 57%로 한번에 떨어지게 됩니다. 문제 이름만 보면 게임코딩에 유용하게 사용될 것 같은 느낌입니다. 바로 문제 살펴보도록 하겠습니다. 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단.. 2023. 9. 10.
[프로그래머스] - 덧칠하기(C#) 덧칠하기 오늘은 "덧칠하기" 문제를 풀어보도록 하겠습니다. 이 문제는 정답률 60%로 곧 50%대에 진입하게 됩니다. 문제 설명 어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다. 넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호를 붙였습니다. 그리고 페인트를 다시 칠해야 할 구역들을 정했습니다. 벽.. 2023. 9. 9.
[프로그래머스] - 소수 찾기(C#) 소수 찾기 오늘은 "소수 찾기" 문제를 풀어보겠습니다. 이제 정답률도 점점 낮아져 61퍼가 되었습니다. 곧 60퍼 보다 낮은 정답률을 가진 문제들이 등장할 것입니다. 문제 살펴보겠습니다. 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 입출력 예 설명 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 시작 코드 public class So.. 2023. 9. 8.
[프로그래머스] - 소수 만들기(C#) 소수 만들기 오늘은 Summer/Winter Coding(~2018) 에 출제 되었던 "소수만들기" 문제를 풀어보도록 하겠습니다. 바로 문제를 살펴보도록 하겠습니다. 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한 사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 nums result [1, 2, 3, 4] 1 [1, 2, 7, 6.. 2023. 9. 7.
[프로그래머스] - 모의고사(C#) 모의고사 오늘은 모의고사 시험을 보는 날입니다.... 아니 완전탐색 카테고리의 코딩테스트 문제 "모의고사"를 풀어보는 날입니다. 이상한 소리 그만하고 바로 본론으로 들어가도록 하겠습니다. 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 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, ..... 2023. 9. 6.
[프로그래머스] - 과일 장수(C#) 과일 장수 오늘은 "과일 장수" 문제를 풀어보겠습니다. 바로 문제 살펴보겠습니다. 문제 설명 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음.. 2023. 9. 5.