public int solution(int hp) {
int answer = 0;
answer += hp / 5;
hp %=5;
answer += hp / 3;
hp %= 3;
answer += hp;
return answer;
}
return hp / 5 + (hp % 5) /3 + (hp % 5) % 3;

public String solution(String rsp) {
StringBuilder builder = new StringBuilder();
for(char c : rsp.toCharArray()) {
if(c == '2') {
builder.append('0');
}else if(c == '0') {
builder.append('5');
}else if(c == '5'){
builder.append('2');
}
}
return builder.toString();
}
다른 풀이
public String solution(String rsp) {
Map<Character, Character> winNumbers = new HashMap<>();
winNumbers.put('2', '0');
winNumbers.put('0', '5');
winNumbers.put('5', '2');
StringBuilder answer = new StringBuilder();
for (char c : rsp.toCharArray()) {
answer.append(winNumbers.get(c));
}
return answer.toString();
}
substring(i, i+1) 대신 char 사용 → charAt(i) 또는 toCharArray()를 사용하여 더 직관적이고 성능이 향상된다.
- 여기서는
HashMap의 키를 String 대신 Character 타입으로 변경하는 것이 더 효율적이다.
for-each 사용 → 코드가 더 간결하고 가독성이 좋아진다.
Map<String, String> winNumbers = new HashMap<>();
for (int i = 0; i < rsp.length(); i++) {
answer.append(winNumbers.get(rsp.substring(i, i+1)));
}
.substring(i, i+1)
substring(i, i+1)은 i번째 문자부터 (i+1)번째 문자 전까지를 가져오는 메서드이므로
한 글자를 문자열 형태(String)로 가져온다.
String rsp = "205";
System.out.println(rsp.substring(0, 1));
System.out.println(rsp.substring(1, 2));
System.out.println(rsp.substring(2, 3));