문제: https://school.programmers.co.kr/learn/courses/30/lessons/340200
닉네임을 입력받는데 닉네임에는 조건이 있다.
l
과w
, 대문자 O
와 W
를 사용할 수 없습니다.잘못된 닉네임이 들어온다면 다음 조건으로 바꾼다.
l
을 대문자 I
로 변경합니다.w
를 두 개의 소문자 v
, 즉 vv
로 변경합니다.W
를 두 개의 대문자 V
, 즉 VV
로 변경합니다.O
를 숫자 0
으로 변경합니다.o
를 길이가 4가 될때까지 이어붙입니다.class Solution {
public String solution(String nickname) {
String answer = "";
for(int i=0; i<nickname.length(); i++){
if(nickname.charAt(i) == 'l'){
answer += "I";
}
else if(nickname.charAt(i) == 'w'){
answer += "vv";
}
else if(nickname.charAt(i) == 'W'){
answer += "VV";
}
else if(nickname.charAt(i) == 'O'){
answer += "0";
}
else{
answer += nickname.charAt(i);
}
}
if(answer.length() < 3){
answer += "o";
}
if(answer.length() > 8){
answer = answer.substring(0, 8);
}
return answer;
}
}
조건대로 따라가보니 5. 수정된 닉네임의 길이가 4 미만일 경우 뒤에 소문자 o를 길이가 4가 될때까지 이어붙입니다.
조건을 만족시키지 못한다는 것을 확인했다.
if(answer.length() < 3){
answer += "o";
}
현재 코드는 새로 바뀐 닉네임이 3자리 미만일 경우 "o"를 하나만 붙이게 된다.
5번 조건을 만족시키기 위해서는 while로 4자리가 될때까지 "o"를 추가해야한다.
while(answer.length() < 4){
answer += "o";
}
이렇게 고쳤더니?! 됐다!!