문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
class Solution {
public int solution(String s) {
int answer = 0;
return answer;
}
}
class Solution {
public int solution(String s) {
return Integer.parseInt(s);
}
}
정수를 문자열로 바꾸는 메서드를 사용하여 문제를 풀었다.
문제 링크 : 문자열을 정수로 바꾸기
자연수 n이 매개변수로 주어집니다. n
을 x
로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x
를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
n
≤ 1,000,000n | result |
---|---|
10 | 3 |
12 | 11 |
class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i<n; i++)
if(n%i == 1) {
answer = i;
break;
}
return answer;
}
}
답은 항상 존재하므로 반복문을 1부터 n
까지 돌립니다. 그 이유는 답이 항상 존재하려면 어떤 수로 n
을 나눴을 때 반드시 나머지가 있다는 뜻이고, n
보다 작은 경우가 가장 작을 경우이기 때문입니다.
조건문을 통해 n
을 i
로 나눠 나머지가 1인 수를 만나면 정답은 해당 i
값이 됩니다. 또한 작은 수부터 1씩 증가하여 찾은 수이기 때문에 가장 작은 값은 조건이 제일 먼저 부합하는 경우입니다. 따라서 조건이 맞다면 반복문을 끝냅니다.
문제 링크 : 나머지가 1이 되는 수 찾기
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
n | return |
---|---|
3 | "수박수" |
4 | "수박수박" |
class Solution {
public String solution(int n) {
String answer = "";
return answer;
}
}
class Solution {
public String solution(int n) {
String answer = "";
for(int i=0; i<n; i++){
if(i%2 == 0) answer+="수";
else answer+="박";
}
return answer;
}
}
n
까지 반복문을 돌려 나머지가 0인 경우(짝수) "수"를 문자열에 추가하고, 0이 아닌 경우(홀수) "박"을 문자열에 추가합니다. 문자열을 연결해주는 연산자인 +
를 사용하여 문자열을 연결하였습니다.
문제 링크 : 수박수박수박수박수박수?
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1]
입니다. (n은 a, b의 길이)
a | b | result |
---|---|---|
[1,2,3,4] | [-3,-1,0,2] | 3 |
[-1,0,1] | [1,0,-1] | -2 |
class Solution {
public int solution(int[] a, int[] b) {
int answer = 1234567890;
return answer;
}
}
class Solution {
public int solution(int[] a, int[] b) {
int answer = 0;
for(int i=0; i<a.length; i++)
answer+=a[i]*b[i];
return answer;
}
}
a와 b의 길이가 같기 때문에 반복문을 두 배열 중 하나의 크기만큼 돌려줍니다. 내적은 a와 b를 같은 인덱스의 값끼리 곱한 값을 누적한 것이므로 answer에 a와 b의 값을 곱한 값을 누적합니다.
문제 링크 : 내적
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를 들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
N | answer |
---|---|
123 | 6 |
987 | 24 |
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("Hello Java");
return answer;
}
}
import java.util.*;
public class Solution {
public int solution(int n) {
String str = Integer.toString(n);
int sum = 0;
for(int i=0; i<str.length(); i++)
sum+=str.charAt(i)-'0';
return sum;
}
}
n을 자릿수별로 나눠주기 위해 문자열로 변환합니다. 모든 자릿수를 더해야하기 때문에 반복문을 문자열의 길이만큼 돌려줍니다. 각 자릿수의 합을 구하기 위해 charAt()을 사용해 한자리씩 가져옵니다. 이때 문자를 정수형으로 바꿔야하기 때문에 '0'을 빼서 더합니다.
문제 링크 : 자릿수 더하기