정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
if(n % i == 0) {
answer += i;
}
}
return answer;
}
}
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
class Solution {
public List<Integer> solution(int n, int[] numlist) {
List<Integer> answer = new ArrayList<>();
int a = 0;
for (int i = 0; i < numlist.length; i++) {
if (numlist[i] % n ==0) {
a = numlist[i];
answer.add(a);
}
}
return answer;
}
}
n의 배수를 구하는 문제니까 배열에 들어가있는 숫자들을 for 문을 돌면서 하나씩 비교 해야겠다고 생각했어.
그리고 numlist[i]랑 n이랑 나눠서 나머지의 값이 0 이면 배수라는거 알지??
나는 어떻게 담을까 라고 생각하다가 최근에 ArrayList를 많이 사용해서 ArrayList의 add함수를 사용하기로 결정했어. 확실히 이게 편하네.. ㅎㅎㅎ
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
public class Solution {
public int solution(int n) {
int answer = 0;
while(n>0){
answer += n%10;
n /=10;
}
return answer;
}
}
자릿수를 더하는 문제니까 숫자 하나씩 어떻게 나누지?? 라고 생각했는데 예를 들어 1234에서 10으로 나눈 나머지만 구하면 4이고 그럼 10의 로 나눈 몫은 123이잖아.
그래서 answer에는 4를 더해주고 n에는 123을 저장하고 이거를 반복 작업을 하면 ? 다음은 answer에 3 더하고 n에는 12를 저장을 하기때문에 이런식으로 코드를 짜보았다..
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
class Solution {
public List<Integer> solution(long n) {
String num = String.valueOf(n);
List<Integer> list = new ArrayList<>();
for (int i = num.length() - 1; i >= 0; i--) {
String str = num.substring(i, i + 1); // i번째 문자 추출
int answer = Integer.parseInt(str);
System.out.println(answer);
list.add(answer);
}
return list;
}
}
나의 풀이
일단 나는 하나씩 잘라서 넣어야 되니까 substring을 사용하고 싶었어. 그런데 substring은 String만 사용할 수 있는거 알지?
그래서 num으로 n값을 String으로 처음에 저장했어.
또 List를 이용해서 풀었는데 for문을 돌 때 str변수를 만들어 i랑i+1값까지 substring을 이용해 값을 집어넣기로 생각했어.
그리고 다시 str을 int로 바꿔서 answer에 저장하고 add를 하면 끝!!