코딩테스트

1. 문제설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이 2인..
1. 문제설명 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다. ● 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다. ● 한 번 사용한 카드는 다시 사용할 수 없습니다. ● 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. ● 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다. 예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink", "water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉치에..
1. 문제설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.) 2. 제한사항 ● n은 2이상 1000000이하의 자연수입니다. 3. 입출력 예시 n result 10 4 5 3 4. 나의 풀이 public int solution(int n) { int answer = 0; int[] arr = new int[n + 1]; //arr배열 2번방부터 2부터 순서대로 숫자를 넣어준다. for (int i = 2; i
1. 문제설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 2. 제한사항 ● nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. ● nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 3. 입출력 예시 nums result [1,2,3,4] 1 [1,2,7,6,4] 4 4. 나의 풀이 public int solution(int[] nums) { int answer = 0; //숫자 3개를 조합하기 위한 삼중for..
1. 문제설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 2. 제한사항 ● n은 길이 10,000이하인 자연수입니다. 3. 입출력 예시 n return 3 "수박수" 4 "수박수박" 4. 나의 풀이 public string solution(int n) { string answer = ""; //홀수일 때는 "수", 짝수일 때는 "박"을 answer에 추가해주는 for문. for (int i = 1; i
1. 문제설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 2. 제한사항 ● seoul은 길이 1 이상, 1000 이하인 배열입니다. ● seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. ● "Kim"은 반드시 seoul 안에 포함되어 있습니다. 3. 입출력 예시 seoul return ["Jane", "Kim"] "김서방 1에 있" 4. 나의 풀이 { string answer = ""; for (int i = 0; i < seoul.Length; i++) { if (seoul[i] ==..
1. 문제설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 2. 제한사항 ● 3 ≤ n ≤ 1,000,000 3. 입출력 예시 n result 10 3 12 11 4. 나의 풀이 public int solution(int n) { int answer = 0; //1로 나누는 건 어차피 의미가 없으니 2부터 시작. for (int i = 2; i < n; i++) { //나머지가 1이 되는 수를 찾으면 break. 이 for문을 빠져나가라. if (n % i == 1) { answer = i; break; } } return answer; }
1. 문제설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 2. 제한사항 ● x는 -10000000 이상, 10000000 이하인 정수입니다. ● n은 1000 이하인 자연수입니다. 3. 입출력 예시 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4,-8] 4. 나의 풀이 public long[] solution(int x, int n) { long[] answer = new long[n]; for (long i = 0; i < n; i++) { answer[i] = x * (i + 1); } re..
1. 문제설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 2. 제한사항 ● n은 1이상, 50000000000000 이하인 양의 정수입니다. 3. 입출력 예시 n result 121 144 3 -1 4. 나의 풀이 public long solution(long n) { long answer = -1; //System.Math.Sqrt()매서드를 사용. 괄호 안 수의 제곱근을 구하는 코드. double x = Math.Sqrt(n); //answer는 long변수이니까 형변환을 해줘야 함. if (x % 1 == 0) answe..
1. 문제설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 2. 제한사항 ● x는 1 이상, 10000 이하인 정수입니다. 3. 입출력 예시 x result 10 true 12 true 11 false 13 false 4. 나의 풀이 public bool solution(int x) { bool answer = false; //x를 string으로 형변환해서 for문에서 자릿수만큼 반복시키려 함. string leng = x.ToString(); int result = x; ..
ForMan_
'코딩테스트' 태그의 글 목록 (5 Page)