๐ 1. ๋ฌธ์์ด ์๊ธฐ
๐ก 1-1. ์ ๊ทผ๋ฐฉ์
โ ๋จ์ํ ์ฃผ์ด์ง ๋ณ์๋ช ๊ทธ๋๋ก a + b > b + a ์ด๋ ๊ฒ ๋น๊ตํ๋ฉด ๋ ์ซ์๋ ์ ์ ๋ง์ ์ด๊ธฐ ๋๋ฌธ์ ํญ์ a + b == b + a๊ฐ ๋๋ค. ๋ฌธ์ ์์ ์๋ํ ๊ฒ์ ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ์ฐ๊ฒฐํ ํ, ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ ๊ฒ์ด๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ๋น๊ตํ๋ ค๋ฉด String.valueOf(a) + b์ String.valueOf(b) + a ๋ฅผ ๋น๊ตํด์ผ ํ๋ค.
โ ๋ ๋๋ ์ฒ์์ sb.toString()์ ์จ์ int๋ก ๋ฐํํ๋ ์ค์๋ฅผ ํ๋๋ฐ, sb.toString()์ ๋ฌธ์์ด์ด๊ธฐ ๋๋ฌธ์, int ํ์ ์ ๋ฐํํ๋ solution ๋ฉ์๋์ ํ์ ์ด ๋ง์ง ์๋๋ค. ๊ทธ๋์ Integer.parseInt(sb.toString())์ ์ฌ์ฉํ์ฌ ๋ณํํด์ผ ํ๋ค.
ํ๋ฆฐ ์ฝ๋
class Solution {
public int solution(int a, int b) {
StringBuilder sb = new StringBuilder();
if(a+b > b+a) {
sb.append(a).append(b);
} else {
sb.append(b).append(a);
}
return sb.toString();
}
}
โ 1-2. ์ ๋ต์ฝ๋
class Solution {
public int solution(int a, int b) {
String ab = String.valueOf(a) + b;
String ba = String.valueOf(b) + a;
return Integer.parseInt(ab.compareTo(ba) > 0 ? ab : ba);
}
}
โญ String.valueOf(a)
์ ์ a๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๋ ๋ฉ์๋
โญab.compareTo()
๋ ๋ฌธ์์ด์ *์ฌ์ ์์ผ๋ก ๋น๊ตํ๋ ๋ฉ์๋
ab๊ฐ ba๋ณด๋ค ํฌ๋ฉด ์์, ์์ผ๋ฉด ์์, ๊ฐ์ผ๋ฉด 0 ๋ฐํํ๋ค.
ab.compareTo(ba) > 0
โญ ์ผํญ ์ฐ์ฐ์ ๋ณต์ต
if-else์ ์ถ์ฝํ์ผ๋ก, ์กฐ๊ฑด์ด true๋ฉด ? ๋ค์ ๊ฐ ๋ฐํ, false๋ฉด : ๋ค์ ๊ฐ ๋ฐํ
์กฐ๊ฑด ? ๊ฐ1 : ๊ฐ2
์ผํญ ์ฐ์ฐ์ (์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๊ฐ1, ๊ฑฐ์ง์ด๋ฉด ๊ฐ2 ๋ฐํ)
ab.compareTo(ba) > 0 ? ab : ba
int a = 5, b = 10;
int max = (a > b) ? a : b; // b(10)์ด ๋ ํฌ๋ฏ๋ก 10 ๋ฐํ
System.out.println(max); // 10
๐ 2. ๋ ์์ ์ฐ์ฐ๊ฐ ๋น๊ตํ๊ธฐ
์ด ๋ฌธ์ ๋ ์์ฃผ ์ฝ๊ธฐ ๋๋ฌธ์ ์ ๋ต ์ฝ๋๋ง ์ฌ๋ฆฐ๋ค.
์ ๋ต์ฝ๋ โผ
class Solution {
public int solution(int a, int b) {
String abStr = String.valueOf(a) + b;
int abInt = Integer.parseInt(abStr);
return abInt > 2*a*b ? abInt : 2*a*b;
}
}