JAVA로 코딩테스트 Level.1 문제 풀기 1주 차
2022년 3월 28일 월요일 / 짝수와 홀수
문제 설명
- 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
제한사항
- num은 int 범위의 정수입니다.
- 0은 짝수입니다.
입출력 예
num | return |
3 | "Odd" |
4 | "Even" |
문제 풀이 및 주석
class Solution {
public String solution(int num) { // 정수 num
String answer = "";
if (num % 2 == 0) answer = "Even"; // 나머지 산술 연산자 사용, 짝수일 경우 (0 포함) Even 반환
else answer = "Odd"; // 짝수가 아닐 경우 Odd 반환
return answer;
}
}
if문을 사용해서 정수 % 2 == 0 일 때, 정수 % 2!== 0 일 때 짝수와 홀수이기 때문에 결과 값을 받아 return 하였다.
2022년 3월 29일 화요일 / x만큼 간격이 있는 n개의 숫자
문제 설명
- 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한사항
- x는 -10000000 이상, 10000000 이하인 정수입니다.
- n은 1000 이하인 자연수입니다.
입출력 예
x | n | answer |
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
문제 풀이 및 주석
class Solution {
public long[] solution(int x, int n) { // 정수 x와 자연수 n을 입력 받음
long[] answer = {};
answer = new long[n];
for (int i = 0; i < n; i++) {
answer[i] = x * (long)(i + 1); // i를 long로 형변환
}
return answer;
}
}
int를 long으로 형 변환하고 for문을 사용해서 n만큼 돌아갈 때마다 i에 +1을 더해줘 x와 곱해주었다.
2022년 3월 30일 수요일 / 평균 구하기
문제 설명
- 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
arr | return |
[1,2,3,4] | 2.5 |
[5,5] | 5 |
문제 풀이 및 주석
class Solution {
public double solution(int[] arr) {
double answer = 0;
for (int i = 0; i < arr.length; i++)
answer += arr[i]; //배열의 모든 정수 더하기
return answer/arr.length;
}
}
배열의 모든 정수를 더하고 for문을 사용해서 배열을 반복문 돌리고 배열의 길이(arr.length)로 나누어 평균을 구하였다.
2022년 3월 31일 목요일 / 핸드폰 번호 가리기
문제 설명
- 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한사항
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
문제 풀이 및 주석
class Solution {
public String solution(String phone_number) {
char[] charactor = phone_number.toCharArray();
for(int i = 0; i < charactor.length - 4; i++) // 전화번호의 뒷 4자리를 제외
charactor[i] = '*'; // 그 외 숫자 전부 *처리
return String.valueOf(charactor);
}
}
문자형 값을 처리하기 위해 char을 사용, for문을 사용해서 charactor의 뒷 4자리를 남긴 숫자를 모두 *표 처리하였다.
2022년 4월 1일 금요일 / 정수 제곱근 판별
문제 설명
- 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한사항
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
n | return |
121 | 144 |
3 | -1 |
입출력 예 설명
- 입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. - 입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.
문제 풀이 및 주석
class Solution {
public long solution(long n) {
long answer = 0;
int sqrt = (int) Math.sqrt(n); // sqrt 변수 선언
if (Math.pow(sqrt, 2) == n) { // sqrtdml 제곱 지수가 2
answer = (long) Math.pow(sqrt + 1, 2); // 정수 x의 제곱이라면 x+1의 제곱을 리턴
} else // 정수 x의 제곱이 아니라면 -1을 리턴
answer = -1;
return answer;
}
}
if문을 사용해서 Math.sqrt(n)를 통해 제곱근을 찾고 1에서 찾은 제곱근을 Math.pow()를 사용하여 제곱한 뒤 비교하였다. 정수 x의 제곱이라면 1에서 찾은 제곱근에 +1을 더한 후 제곱하여 return, 아닐 시 -1을 return 하였다.
JAVA로 코딩테스트 Level.1 문제 풀기 1주 차 완료!
'코딩테스트' 카테고리의 다른 글
[6주차] 코딩테스트 풀이 (2022.05.16~2022.05.20) (0) | 2022.05.21 |
---|---|
[5주차] 코딩테스트 풀이 (2022.05.09~2022.05.13) (0) | 2022.05.15 |
[4주차] 코딩테스트 풀이 (2022.04.18~2022.04.22) (3) | 2022.04.23 |
[3주차] 코딩테스트 풀이 (2022.04.11~2022.04.15) (6) | 2022.04.16 |
[2주차] 코딩테스트 풀이 (2022.04.04~2022.04.08) (7) | 2022.04.10 |