[코딩테스트 입문] 구슬을 나누는 경우의 수 (nCr) ★★★
·
코딩테스트
🔸 문제 설명서로 다른 구슬 balls개 중에서share개의 구슬을 순서 없이 고르는 경우의 수를 구하는 문제입니다.이건 수학에서 조합 (Combination)이라 부릅니다.공식은 이렇게 생겼어요:nCr = n! / (r! * (n - r)!) 🔸 입출력 예ballsshare결과3235310 ❓ 내가 처음에 했던 방식 (팩토리얼 3번 계산)a = balls!b = (balls - share)!c = share!answer = a / (b * c)근데 이 방식은 문제가 있음 ❗ 실수했던 포인트❌ 팩토리얼 계산이 너무 커짐 (오버플로우)30! 같은 건 숫자가 long 타입보다 커짐그래서 일부 테스트 케이스에서 틀린 결과 나옴해결책 → BigInteger나 수학 공식을 활용해야 해! ✅ 가장 쉬운 방법 (..
[코딩테스트 입문] 모스부호 (1) ★
·
코딩테스트
🔸 문제 설명머쓱이는 모스부호로 쓰인 편지를 받았습니다.이걸 해석해서 알파벳 소문자로 바꾸는 프로그램을 작성해야 해요.모스부호는 공백으로 나눠져 있으며, 아래와 같이 알파벳과 매칭됩니다.예:.... = h . = e .-.. = l --- = o 입력: ".... . .-.. .-.. ---"출력: "hello" 🔸 입출력 예letter결과".... . .-.. .-.. ---""hello"".--. -.-- - .... --- -.""python" ✅ 내가 처음에 헷갈렸던 부분❓ "split" 결과를 String으로 받음String morseArr = letter.split(" "); // ❌ → split은 배열이 반환되기 때문에 이렇게 해야 함.String[] morseArr = lette..
[코딩테스트 입문] 진료 순서 정하기 ★
·
코딩테스트
🔸 문제 설명응급실에서는 응급도가 높은 환자부터 먼저 진료해야 해요.정수 배열 emergency가 주어졌을 때,각 환자의 진료 순위(응급도 높은 순)를 배열로 반환하는 문제입니다. 🔸 입출력 예emergency결과[3, 76, 24][3, 1, 2][1, 2, 3, 4, 5, 6, 7][7, 6, 5, 4, 3, 2, 1][30, 10, 23, 6, 100][2, 4, 3, 5, 1] 🔍 문제 접근 방법각 숫자가 전체 중 몇 번째로 큰 값인지를 판단하면 된다! 🔸 정답코드import java.util.Arrays;class Solution { public int[] solution(int[] emergency) { int[] answer = new int[emergency.len..
[코딩테스트 입문] 외계행성의 나이 ★
·
코딩테스트
🔸 문제 설명외계행성 PROGRAMMERS-962에서는 숫자를 알파벳 소문자로 표현합니다.숫자문자0a1b2c......9j 예를 들어, 나이 23은 "cd"로, 51은 "fb"로 표현됩니다.정수 age가 주어졌을 때, 외계 행성식 문자열로 바꿔서 반환하세요. 🔸 입출력 예age결과23"cd"51"fb"100"baa" ✅ 내가 처음에 헷갈렸던 부분 😅❓ '숫자 → 문자'를 어떻게 바꾸지?"2"는 문자니까 'a' + 2 하면 'c'가 되는데,이걸 숫자마다 하나하나 해줘야 한다는 걸 몰랐어!❓ charAt()이 왜 안 되지?int 타입은 charAt() 못 써서먼저 문자열로 바꿔야 쓸 수 있어! 🔸 최종 정답 코드class Solution { public String solution(int age..
[코딩테스트 입문] 최댓값 만들기 (2) ★
·
코딩테스트
🔸 문제 설명정수 배열 numbers가 주어졌을 때,배열 속 두 수를 곱해서 나올 수 있는 최댓값을 반환하는 문제입니다.✔ 음수도 포함되기 때문에,생각보다 단순하지 않은 문제예요! 🔸 입출력 예numbers결과설명[1, 2, -3, 4, -5]15-3 × -5[0, -31, 24, 10, 1, 9]24010 × 24[10, 20, 30, 5, 5, 20, 5]60020 × 30 ✅ 내가 처음 시도했던 코드 (실수 포함)class Solution { public int solution(int[] numbers) { int max = 0; // ❌ 이렇게 하면 음수 곱을 놓칠 수 있음! for (int i = 0; i max) { max ..
[코딩테스트 입문] 숨어있는 숫자의 덧셈 (1) ★
·
카테고리 없음
🔸 문제 설명문자열 my_string이 주어집니다.이 안에 숨어 있는 한 자리 숫자들만 골라서 전부 더한 값을 구해야 합니다.❗ 주의: "123"은 연속된 숫자처럼 보여도→ 1, 2, 3으로 따로 더해야 해요! 🔸 입출력 예시my_string결과설명"aAb1B2cC34oOp"101+2+3+4"1a2b3c4d123"161+2+3+4+1+2+3 🔍 내가 헷갈렸던 부분❓ "문자에서 숫자만 고르는 방법"이 어렵게 느껴졌어처음엔 Character.isDigit() 같은 걸 써야 하나 했는데,'0' 🔸 정답 코드class Solution { public int solution(String my_string) { int answer = 0; for (int i = 0; i = ..
[코딩테스트 입문] 문자열 정렬하기 (1) ★
·
코딩테스트
🔸 문제 설명문자열 my_string이 주어졌을 때,그 안에 있는 숫자만 골라서 오름차순 정렬한 배열을 반환하는 문제입니다. 🔸 입출력 예시my_string결과"hi12392"[1, 2, 2, 3, 9]"p2o4i8gj2"[2, 2, 4, 8]"abcde0"[0] 🔸 문제 해결 흐름문자열에서 숫자만 남기기→ 소문자 제거: replaceAll("[a-z]", "")문자들을 숫자로 변환해서 배열에 담기→ charAt(i) - '0' 사용배열을 정렬하기→ Arrays.sort(answer) 🔸 최종 정답 코드import java.util.Arrays;class Solution { public int[] solution(String my_string) { my_string = my_st..
[코딩테스트 입문] 가위 바위 보 ★
·
코딩테스트
🔸 문제 설명문자열 rsp에는 가위(2), 바위(0), 보(5)가 숫자로 표현되어 들어있습니다.이 rsp를 입력으로 받아서,각 선택을 이기는 손 모양을 찾아서 문자열로 반환하는 문제입니다. 🔸 가위바위보 대응표입력의미이기는 손2✌ 가위0 (바위)0✊ 바위5 (보)5✋ 보2 (가위) 🔸 입출력 예시입력 rsp결과"2""0""205""052" 🔸 정답코드class Solution { public String solution(String rsp) { String answer = ""; for (int i = 0; i 🔸 코드 설명 rsp.charAt(i) → 문자열에서 i번째 문자 꺼내기숫자가 아니라 문자이므로, 반드시 '2', '0', '5'처럼 작은 따옴표('')..
summ.n
'분류 전체보기' 카테고리의 글 목록 (2 Page)