본문 바로가기

C#104

[프로그래머스] - 소수 만들기(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.
게임개발 중급(81) - Monster Killer(43) Monster Killer 지난시간 까지는 빌드하는 방법과 그 과정에서 필요한 최적화 및 실제 스토어 등록을 하기위해 필요한 절차에 대해서 알아보았습니다. 이번부터는 다시 게임을 만들어 나가는 과정을 보여드리겠습니다. 타임아웃 및 사망 저번에 형태만 만들어놓고 기능연결을 하지 않았던 것을 만들어 주었습니다. 주어진 시간이 전부 지나거나 체력이 전부 닳았다면 게임오버가 되도록 해주었습니다. 해당 이미지는 타임아웃된 모습입니다. 현재 시간이 전부 지나가면 위 그림처럼 시간이 이상하게 표현되는 현상이 있지만 추후에 고칠 예정입니다. 추가로 게임오버 페이지도 조금 바뀌었습니다. 기존에는 게임오버 글씨와 함께 홈버튼만 있었지만, 게임을 진행하면서 획득한 재화를 보여주는 Result페이지를 만들어 골드를 임시로 넣.. 2023. 9. 4.
[프로그래머스] - 카드 뭉치(C#) 카드 뭉치 오늘은 "카드 뭉치" 문제를 풀어보도록 하겠습니다. 바로 문제를 살펴보겠습니다. 문제 설명 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다. 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다. 한 번 사용한 카드는 다시 사용할 수 없습니다. 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다. 예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink",.. 2023. 9. 3.
[프로그래머스] - 2016년(C#) 2016년 오늘은 "2016년" 문제를 풀어보도록 하겠습니다. 바로 문제를 살펴보겠습니다. 문제 설명 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일같은 날짜는 주어지지 않습니다) 입출력 예 a b result 5 24 "TUE" 시작 코드 public class .. 2023. 9. 2.
[프로그래머스] - 명예의 전당(1)(C#) 명예의 전당(1) 오늘은 "명예의 전당(1)" 문제를 풀어보겠습니다. 1번이라는 건 다음에 비슷한 문제가 다시 나올 것 같습니다. 이번 문제부터 정답률이 67퍼에서 64퍼로 한번에 떨어집니다. 문제 설명 "명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 .. 2023. 9. 1.
[프로그래머스] - 콜라 문제(C#) 콜라 문제 오늘은 "콜라 문제"를 풀어보도록 하겠습니다. 이제부터는 1단계지만 꽤 난이도가 있는 문제가 나올 예정입니다. 바로 문제 살펴보겠습니다. 문제 설명 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을.. 2023. 8. 31.
게임개발 중급(80) - Monster Killer(42) Monster Killer 안녕하세요 저번시간에는 빌드 최적화에 대해서 조금 알아봤습니다. 이어서 빌드할 때 반드시 거쳐야 하는 과정에 대해서 살펴보도록 하겠습니다. 빌드 과정 저번 시간에 저희는 빌드하는 많은 과정 중에서 최적화에 대해서 조금 다뤘습니다. 하지만 최적화 말고도 많은 세팅들을 해줘야 하는데 아직까진 깊게 들어갈 이유가 없으므로 필수적인 사항에 대해서만 다뤄보려고 합니다. Build Settings에서 씬을 등록하고, 안드로이드로 플랫폼을 변경한 후에, PlayerSettings에 들어가면 이런 화면이 등장합니다. 여기서 저희가 필수적으로 봐야할 것은 상단에 위치한 Company Name, Product Name, Version그리고 하단에 Resolution and Presentation.. 2023. 8. 30.
[프로그래머스] - 푸드 파이트 대회(C#) 푸드 파이트 대회 오늘은 "푸드 파이트 대회" 문제를 풀어보도록 하겠습니다. 바로 문제를 살펴보겠습니다. 문제 설명 수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들.. 2023. 8. 29.