정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
num은 int 범위의 정수입니다.
0은 짝수입니다.
class Solution {
public String solution(int num) {
String answer = "";
return answer;
}
}
import java.util.Scanner;
public class Solution1 {
String answer1 = "Even";
String answer2 = "Odd";
public String solution(int num) {
if(num%2==0)
return answer1;
else
return answer2;
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
Solution1 s=new Solution1();
System.out.println(s.solution(scan.nextInt()));
System.out.println(s.solution(scan.nextInt()));
}
}
짝수인지 구별하기 위해 2로 나누어 나머지가 0이면 "Even"이라는 문자열을 출력하게 하고 홀수면 "Odd"를 출력하도록 if, else문을 썼다. 메인에는 객체를 생성하여 메서드를 호출하고 바로 출력하도록 하였다.
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
class Solution {
public long[] solution(int x, int n) {
long[] answer = {};
return answer;
}
}
import java.util.Scanner;
public class Solution2 {
public long[] solution(long x, int n) {
long[] answer = new long[n];
for(int i=1; i<=n; i++) {
answer[i-1]=x*i;
}
return answer;
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
Solution2 s=new Solution2();
long arr[]=s.solution(scan.nextInt(), scan.nextInt());
System.out.print("[ ");
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.print("]");
}
}
x가 x만큼씩 증가해야 하기 때문에 i를 1로 선언한 다음 i++을 하고 for문으로 반복하며 answer[i] 안에 x*i 값을 넣어줬다. 그리고 메인에서는 answer을 for문을 한 번 더 돌려줌으로써 배열이 잘 출력되도록 하였다.
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
arr은 길이 1 이상, 100 이하인 배열입니다.
arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
class Solution {
public double solution(int[] arr) {
double answer = 0;
return answer;
}
}
import java.util.Scanner;
public class Solution3 {
public double solution(int[] arr) {
double answer = 0;
int sum=0;
for(int i=0; i<arr.length; i++) {
sum+=arr[i];
}
answer=(double)sum/arr.length;
return answer;
}
public static void main(String args[]) {
Scanner scan=new Scanner(System.in);
Solution3 s=new Solution3();
System.out.print("배열 길이: ");
int len=scan.nextInt();
int[] arr=new int[len];
for(int i=0; i<arr.length; i++) {
arr[i]=scan.nextInt(); //arr 입력
}
System.out.println(s.solution(arr));
}
}
배열을 입력할 때 길이를 먼저 정해주고 그 길이만큼 for문을 돌려 배열을 입력받게 하였다. 그리고 배열을 넘겨준 뒤 메서드 안에서 for문을 사용해 arr 안에 값들을 sum에 더하여 저장해 arr의 길이로 나눠서 answer에 평균값을 저장해주었다.
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
phone_number는 길이 4 이상, 20이하인 문자열입니다.
class Solution {
public String solution(String phone_number) {
String answer = "";
return answer;
}
}
public class Solution4 {
public char[] solution(char[] phone_number) {
for(int i=0; i< phone_number.length-4; i++) {
phone_number[i]='*';
}
return phone_number;
}
public static void main(String[] args) {
Solution4 s=new Solution4();
char[] num1={'0','1','0','3','3','3','3','4','4','4','4'};
char[] num2={'0','2','7','7','7','8','8','8','8'};
for(int i=0; i< num1.length; i++) {
System.out.print(num1[i]);
}
System.out.println();
s.solution(num1);
for(int i=0; i< num1.length; i++) {
System.out.print(num1[i]);
}
System.out.println();
for(int i=0; i< num2.length; i++) {
System.out.print(num2[i]);
}
System.out.println();
s.solution(num2);
for(int i=0; i< num2.length; i++) {
System.out.print(num2[i]);
}
}
}
num1과 num2를 메서드에 넘겨주고 for문을 phone_number 길이에서 4를 뺀 길이까지를 '*'로 바꾸고 return을 해준 다음 메인에서 for문을 돌려 값을 출력하였다. 그리고 입력 받는 것이 어려워서 처음부터 초기화를 하였다...
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
n은 1이상, 50000000000000 이하인 양의 정수입니다.
class Solution {
public long solution(long n) {
long answer = 0;
return answer;
}
}
public class Solution5 {
public long solution(long n) {
long answer=0;
if(Math.sqrt(n)-(int)Math.sqrt(n)==0.0)
answer=((long)Math.sqrt(n)+1)*((long)Math.sqrt(n)+1);
else
answer=-1;
return answer;
}
public static void main(String[] args) {
Solution5 s=new Solution5();
System.out.println(s.solution(121));
System.out.println(s.solution(3));
}
}
제곱근을 구하기 위해 Math.sqrt 함수를 사용하였다. 그리고 양의 정수인지를 판별하기 위해 n의 제곱근을 int형으로 변환한 n의 제곱근으로 빼서 0이 나오도록 if문의 조건을 썼다.
메인 함수로 직접 입력 받는 코드까지 구현한 거 멋져요!