본문 바로가기

코딩테스트 연습

(31)
[JAVA/알고리즘] 자릿수 더하기 🖥 나의 풀이 import java.util.*; public class Solution { public int solution(int n) { int answer = 0; while(n > 0){ answer += n%10; n/=10; } return answer; } }
[JAVA/알고리즘] 문자열 다루기 기본 🖥 나의 풀이 class Solution { public boolean solution(String s) { if ((s.length() == 4 || s.length() == 6) && s.matches("[0-9]+")) { return true; } else { return false; } } } 🖥 다른 풀이 class Solution { public boolean solution(String s) { if(s.length() == 4 || s.length() == 6){ try{ int x = Integer.parseInt(s); return true; } catch(NumberFormatException e){ return false; } } else return false; } } 📚 참고 ..
[JAVA/알고리즘] 콜라츠 추측 입력된 수, num은 1 이상 8000000 미만인 정수입니다. 💡 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. ‼️ 입력된 수, num은 ..
[JAVA/알고리즘] 폰켓몬 💡 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫 번째(..
[C#/알고리즘] 핸드폰 번호 가리기 💡 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. ‼️ s는 길이 4 이상, 20이하인 문자열입니다. 🖥 나의 풀이 public class Solution { public string solution(string phone_number) { string answer = ""; string temp = ""; // 뒤에서부터 4자리 자르기 temp = phone_number.Substring(phone_number.Length-4); for (int i = 0; i < phone_..
[C#/알고리즘] 하샤드 수 💡 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. ‼️ x는 1 이상, 10000 이하인 정수입니다. 🖥 내 풀이 using System; public class Solution { public bool solution(int x) { int sum = 0; int temp = x; // 자리수 합 구하기 for ( ; temp>0; temp/=10) { sum += (temp%10); } // x의 자릿수의 합으로 x가 나누어지는가 if (x % sum == 0) return..
[C#/알고리즘] 평균 구하기 💡정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. ‼️ arr은 길이 1 이상, 100 이하인 배열입니다. ‼️ㅍarr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 🖥 나의 풀이 public class Solution { public double solution(int[] arr) { double answer = 0; double sum = 0; foreach (int i in arr) { sum += i; } answer = sum / arr.Length; return answer; } } 🖥 다른 풀이 using System.Linq; public class Solution { public double solution(int[] arr)..
[C#/알고리즘] x만큼 간격이 있는 n개의 숫자 💡 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. ‼️ x는 -10000000 이상, 10000000 이하인 정수입니다. ‼️ n은 1000 이하인 자연수입니다. 🖥 나의 풀이 using System; using System.Collections.Generic; public class Solution { public long[] solution(int x, int n) { List answer = new List (); long i = x; int cnt = 0; while (cnt < n) { answer.Add(i); i += x; c..