
프로그래머스 코딩테스트 입문 Java로 Day 17 문자열 수학 조건문 배열 사칙연산 풀기
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한사항
num < 1,000,000k < 10num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.입출력 예
| num | k | result |
|---|---|---|
| 29183 | 1 | 3 |
| 232443 | 4 | 4 |
| 123456 | 7 | -1 |
class Solution {
public int solution(int num, int k) {
int answer = 0;
answer = Integer.toString(num).indexOf(Integer.toString(k));
if (answer != -1) answer++;
return answer;
}
}
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
n ≤ 10,000numlist의 크기 ≤ 100numlist의 원소 ≤ 100,000입출력 예
| n | numlist | result |
|---|---|---|
| 3 | [4, 5, 6, 7, 8, 9, 10, 11, 12] | [6, 9, 12] |
| 5 | [1, 9, 3, 10, 13, 5] | [10, 5] |
| 12 | [2, 100, 120, 600, 12, 12] | [120, 600, 12, 12] |
import java.util.*;
class Solution {
public int[] solution(int n, int[] numlist) {
int[] answer = {};
List<Integer> list = new ArrayList<>();
for (int i = 0; i < numlist.length; i++) {
if (numlist[i] % n == 0) list.add(numlist[i]);
}
answer = list.stream().mapToInt(Integer::intValue).toArray();
return answer;
}
}
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
제한사항
n ≤ 1,000,000입출력 예
| n | result |
|---|---|
| 1234 | 10 |
| 930211 | 16 |
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 0; i < Integer.toString(n).length(); i++) {
answer += (int)(Integer.toString(n).charAt(i)) - 48;
}
return answer;
}
}
덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
quiz의 길이 ≤ 10입출력 예
| quiz | result |
|---|---|
| ["3 - 4 = -3", "5 + 6 = 11"] | ["X", "O"] |
| ["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] | ["O", "O", "X", "O"] |
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
for (int i = 0; i < quiz.length; i++) {
String[] arr = quiz[i].split(" ");
int num1 = Integer.parseInt(arr[0]);
int num2 = Integer.parseInt(arr[2]);
int num3 = Integer.parseInt(arr[4]);
int result = 0;
if ((arr[1].equals("+") && num1 + num2 == num3) || (arr[1].equals("-") && num1 - num2 == num3)) answer[i] = "O";
else if ((arr[1].equals("+") && num1 + num2 != num3) || (arr[1].equals("-") && num1 - num2 != num3)) answer[i] = "X";
}
return answer;
}
}
1) 이제부터는 다른 사람 코드도 적극적으로 찾아보면서 내 코드가 잘 만들어졌는지 확인하며 공부해야겠다.
2) 기록표
