문자열 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,000| n | 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'을 빼서 더합니다.
문제 링크 : 자릿수 더하기