197. 수 조작하기 2
class Solution {
public String solution(int[] numLog) {
String answer = "";
for(int i=0; i<numLog.length-1; i++){
int num = numLog[i+1] - numLog[i];
if(num == 1) answer += "w";
else if(num == -1) answer += "s";
else if(num == 10) answer += "d";
else answer += "a";
}
return answer;
}
}
<작성한 코드>
간단한 문제였다. for문으로 numLog의 길이 -1 만큼 반복시켜 준 뒤 정수형 변수 num에 앞의 수 - 뒤의 수 를 빼준뒤 그 값을 조건문으로 비교해서 문제에서 제시한 문자를 answer에 더해주고 answer를 반환하였다.
198. 수 조작하기 1
class Solution {
public int solution(int n, String control) {
int answer = n;
char[] ch = control.toCharArray();
for(int i=0; i<ch.length; i++){
char a = ch[i];
if(a == 'w') answer+=1;
else if(a == 's') answer-=1;
else if(a == 'd') answer+=10;
else answer-=10;
}
return answer;
}
}
<작성한 코드>
문자열 control을 char형 배열로 변환시켰다. 그 뒤 ch의 길이만큼 반복시켜 준 뒤 char형 변수 a에 ch [i] 값을 넣어줬다. 그 뒤 조건을 걸어서 문제에서 제시한 w, s, d, a 값에 따라 값을 변경시켜 주고 answer을 반환하였다.
199. 마지막 두 원소
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[num_list.length+1];
for(int i=0; i<answer.length; i++){
if(i == answer.length-1){
if(num_list[num_list.length-1] > num_list[num_list.length-2]){
answer[i] = num_list[num_list.length-1] - num_list[num_list.length-2];
} else{
answer[i] = 2 * num_list[num_list.length-1];
}
} else{
answer[i] = num_list[i];
}
}
return answer;
}
}
<작성한 코드>
answer의 길이는 num_list의 길이에 +1을 해줬다. 그 뒤 for문을 사용해서 answer의 길이만큼 반복해 줬다. 만약 i가 마지막값이라면 조건문에 들어간다. 마지막 원소가 그전 원소보다 크다면 answer에는 그 값의 차이를 대입해 줬고, 크지 않다면 마지막 원소에 2를 곱해서 answer [i]에 대입해 줬다. i가 마지막값이 아닐 때는 num_list [i] 값을 그대로 answer [i] 값에 대입해 줬다. 마지막으로 answer를 반환해 줬다.
200. 이어 붙인 수
class Solution {
public int solution(int[] num_list) {
int answer = 0;
String even = "";
String odd = "";
for(int i=0; i<num_list.length; i++){
if(num_list[i] %2 == 0) even += num_list[i];
else odd += num_list[i];
}
answer = Integer.parseInt(even) + Integer.parseInt(odd);
return answer;
}
}
<작성한 코드>
짝수를 담을 문자열 변수를 even, 홀수를 담을 문자열 변수를 odd로 지정했다. 그 뒤 num_list의 길이만큼 반복시켜 준 뒤 짝수면 even에 그 값을 추가하고, 홀수면 odd에 그 값을 추가하였다. 그 뒤 answer에 두 값을 더해줬다. 더해줄 때는 문자열을 정수형으로 변환하는 Integer.parseInt()를 사용해서 두 수를 더해주고 반환하였다.
201. 원소들의 곱과 합
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int sum = 0;
int multi = 1;
for(int a : num_list){
sum += a;
multi *= a;
}
if(multi < sum*sum) answer = 1;
return answer;
}
}
<작성한 코드>
간단한 문제였다. foreach문을 사용해서 모든 원소의 합과 곱을 구해줬다. 그 뒤 if문으로 크기를 비교하여서 모든 원소들의 합의 제곱이 더 크다면 answer에 1을 대입해 주고 아니라면 그대로 0이 반환된다.
202. 주사위 게임 2
class Solution {
public int solution(int a, int b, int c) {
int answer = 0;
if(a == b && b == c){
answer = (a+b+c) * (a*a + b*b + c*c) * (a*a*a + b*b*b + c*c*c);
} else if(a != b && b != c && a != c){
answer = a+b+c;
} else{
answer = (a+b+c) * (a*a + b*b + c*c);
}
return answer;
}
}
<작성한 코드>
복잡해 보이지만 간단한 문제였다. 세 개의 조건을 나눠서 answer에 연산한 값을 대입해 주면 된다. 그 뒤 반환하면 된다.
203. 등차수열의 특정한 항만 더하기
class Solution {
public int solution(int a, int d, boolean[] included) {
int answer = 0;
for(int i=0; i<included.length; i++){
if(included[i]){
answer += a + (i * d);
}
}
return answer;
}
}
<작성한 코드>
간단한 문제였다. for문을 사용해서 included의 길이만큼 반복해 주고 included [i] 번째에 들어있는 값이 참일 경우 answer에 a + (i * d)를 해줬다. 그리고 answer를 반환해 줬다.
204. 코드 처리하기
class Solution {
public String solution(String code) {
String answer = "";
int mode = 0;
for(int i=0; i<code.length(); i++){
char ch = code.charAt(i);
if(mode == 0){
if(ch != '1'){
if(i%2 == 0){
answer += ch;
}
} else{
mode = 1;
}
} else {
if(ch != '1'){
if(i%2 != 0){
answer += ch;
}
} else{
mode = 0;
}
}
}
if(answer.isEmpty()){
return "EMPTY";
}
return answer;
}
}
<작성한 코드>
간단한 문제다. for문을 사용해서 code의 길이만큼 반복해 주고 char형 변수 ch에는 code의 각 문자를 넣어준다. 그리고 비교를 해준다. mode는 시작할 때 0이라 했으니 0인 상태로 시작한다. 첫 번째 if문에서 mode가 0일 때와 1일 때의 실행되는 코드를 구분해 뒀다. 만약 mode가 0일 때 ch가 1이 아니고 i가 짝수이면 answer에 ch를 더해주고 ch가 1이 나오면 mode에 1을 넣어주고 반복한다. 만약 mode가 1일 때는 ch가 1이 아니고 i가 홀수이면 answer에 ch를 더해줬다. 만약 ch가 1이라면 mode에 0을 넣고 반복한다. for문이 끝나고 if문에서는 isEmpty()를 사용하여 answer가 빈값이면 "EMPTY"를 반환하도록 하였다. 빈 값이 아니라면 answer을 반환하였다.
205. flag에 따라 다른 값 반환하기
class Solution {
public int solution(int a, int b, boolean flag) {
int answer = 0;
if(flag) answer = a + b;
else answer = a - b;
return answer;
}
}
<작성한 코드>
간단한 문제였다. 참이면 a+b을 answer에 넣어주고 거짓이라면 a-b를 answer에 넣어주고 반환하였다.
'프로그래머스 문제풀이 > 알고리즘 (JAVA)' 카테고리의 다른 글
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (215~224번 문제풀이) - 0단계 모든 문제풀이 완료 (0) | 2023.10.20 |
---|---|
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (206~214번 문제풀이) (1) | 2023.10.20 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (188~196번 문제풀이) (1) | 2023.10.19 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (178~187번 문제풀이) (1) | 2023.10.19 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (170~177번 문제풀이) (0) | 2023.10.18 |
남건욱's 공부기록