문제를 잘못 이해했거나 간단한데 어떻게 풀어야 할 지 생각나지 않는 문제들이 많았다
1. 더 크게 합치기
문제 설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
입출력 예
a b result 9 91 991 89 8 898
java로 풀이하려고 했을때 나오는 기본 코드는 다음과 같다
class Solution {
public int Solution(int a, int b) {
int answer = 0;
return answer;
}
}
int answer로 return 해줘야해서 어떻게 해야할지 고민하다가 아래와 같이 풀어보았다
*내가 해결한 방식 :String.valueOf()로 바꿔줬다 => 해결
class Solution {
public int Solution(int a, int b) {
int answer = 0;
String tmp1 = String.valuesOf(a)+String.valuesOf(b);
String tmp2 = String.valuesOf(b)+String.valuesOf(a);
//if(tmp1>tmp2 || tmp1==tmp2){ => 이렇게 하면 에러 발생
if(Integer.parseInt(tmp1) > Integer.parseInt(tmp2) ||
Integer.parseInt(tmp1) == Integer.parseInt(tmp2) {
answer=Integer.parseInt(tmp1);
} else {
answer=Integer.parseInt(tmp2);
}
return answer;
}
}
그런데 코드가 너무 지저분하고 복잡한것 같아 좀 더 보기 편하게 수정해보기로 했다!!
class Solution {
public int Solution(int a, int b) {
int answer = 0;
//아예 tmp1, tmp2 선언때부터 parseInt 해주기
String tmp1 = Integer.parseInt(String.valuesOf(a)+String.valuesOf(b));
String tmp2 = Integer.parseInt(String.valuesOf(b)+String.valuesOf(a));
//이렇게 변경하면 뒤에 매번 Integer.parseInt() 해주지 않아도 된다
if(tmp1 > tmp2 || tmp1 == tmp2) {
answer=tmp1;
} else {
answer=tmp2;
}
return answer;
}
}
코드가 매우 깔끔해졌다! 정답 제출 완료
2. 두 수의 연산값 비교하기
문제 설명
문제 설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
입출력 예
a b result 2 91 364 91 2 912
이 문제도 1번과 같은 방식으로 풀면 되는 문제라 한 포스팅에 넣었다
java로 풀이하려고 했을때 나오는 기본 코드는 다음과 같다
class Solution {
public int Solution(int a, int b) {
int answer = 0;
return answer;
}
}
*내가 해결한 풀이 => 정답 완료
class Solution {
public int Solution(int a, int b) {
int answer = 0;
String tmp1 = Integer.parseInt(String.valueOf(a)+String.valueOf(b))
String tmp2 = Integer.parseInt(String.valueOf(2*a*b))
if(tmp1 > tmp2 || tmp1 == tmp2){
answer=tmp1
} else {
answer=tmp2
}
return answer;
}
}
*알아두어야 할 내용
Integer.parseInt() : 문자열(String)을 숫자(int)로 변환시키는 방법
String.valueOf(): object 값을 String으로 변환시키는 방법, 파라미터가 null이면 문자열 "null"을 만들어서 반환한다
.toString() : String.valueOf()처럼 값을 String으로 변환시키지만 파라미터가 null인 경우 Null PointerException을 발생시킨다
'코테 준비(with 프로그래머스)' 카테고리의 다른 글
프로그래머스 day4 - 조건문자열 (0) | 2023.10.26 |
---|---|
프로그래머스 day4 - 홀짝에 따라 다른 값 반환하기 (1) | 2023.10.26 |
프로그래머스 day3 - 문자열 곱하기 (0) | 2023.10.25 |
프로그래머스 day3 - 문자 리스트를 문자열로 변환하기 (0) | 2023.10.25 |
프로그래머스 day3 - 문자열 섞기 (0) | 2023.10.25 |