728x90
반응형
SMALL

문제 설명

문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.


제한사항

  • 1 ≤ myString의 길이 ≤ 20
    • myString은 알파벳으로 이루어진 문자열입니다.

입출력 예

myString result

"abstract algebra" "AbstrAct AlgebrA"
"PrOgRaMmErS" "progrAmmers"

입출력 예 설명

입출력 예 #1

  • 0번, 5번, 9번, 15번 인덱스의 "a"는 소문자이므로 전부 대문자로 고쳐줍니다.
  • 다른 문자들은 전부 "a"가 아닌 소문자이므로 바꾸지 않습니다.
  • 따라서 "AbstrAct AlgebrA"를 return 합니다.

입출력 예 #2

  • 0번, 2번, 4번, 6번, 8번, 10번 인덱스의 문자들은 "A"가 아닌 대문자이므로 전부 소문자로 고쳐줍니다.
  • 5번 인덱스의 "a"는 소문자이므로 대문자로 고쳐줍니다.
  • 다른 문자들은 전부 "a"가 아닌 소문자이므로 바꾸지 않습니다.
  • 따라서 "progrAmmers"를 return 합니다.
package Lv0;
/*
문자열 myString이 주어집니다. 
myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.
 */
public class H181874 {
	public String solution(String myString) {
		StringBuilder sb = new StringBuilder();

		for (char ch : myString.toCharArray()) {
			if (ch == 'a') {
				sb.append('A');
			} else if (Character.isUpperCase(ch)) {
				sb.append(Character.toLowerCase(ch));
			} else {
				sb.append(ch);
			}
		}
		return sb.toString();
	}
}

StringBuilder를 생성

입력 문자열 myString의 각 문자를 순회하며 해당 문자가 'a'이면 'A'로 변환하고, 'A'가 아닌 대문자 알파벳이면 소문자로 변환하여 StringBuilder에 추가

그렇지 않은 경우에는 원래 문자를 그대로 추가 최종적으로 StringBuilder를 문자열로 변환하여 반환

주어진 문자열에서 'a'를 'A'로 변환하고, 'A'가 아닌 대문자 알파벳을 소문자로 변환한 결과 문자열을 반환


테스트 3 실패 ㅠㅠ 다시 풀기!!

문제를 제대로 읽지 않아서 발생한 문제!!

다시 풀었을때!

package Lv0;
/*
문자열 myString이 주어집니다.
myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.
 */
public class H181874 {
	public String solution(String myString) {
		StringBuilder sb = new StringBuilder();

		for (char ch : myString.toCharArray()) {
			if (ch == 'a') {
				sb.append('A');
			} else if (Character.isUpperCase(ch) && ch != 'A') {
				sb.append(Character.toLowerCase(ch));
			} else {
				sb.append(ch);
			}
		}

		return sb.toString();
	}
}
  1. StringBuilder 인스턴스 **sb**를 생성합니다.
  2. **myString**의 각 문자에 대해 다음을 수행합니다: a. 문자가 'a'인 경우, 대문자 'A'를 **sb**에 추가합니다. b. 문자가 'A'가 아닌 대문자인 경우, 해당 문자를 소문자로 변환하여 **sb**에 추가합니다. c. 그 외의 경우, 문자를 그대로 **sb**에 추가합니다.
  3. **sb**의 내용을 문자열로 변환하여 반환합니다.
  4. } else if (Character.isUpperCase(ch) && ch != 'A') {

이 부분을 추가해줘서 해결!!

728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

꼬리 문자열  (0) 2023.05.03
홀수 vs 짝수  (0) 2023.05.03
배열의 원소만큼 추가하기  (0) 2023.05.03
접미사인지 확인하기  (0) 2023.05.03
문자열 바꿔서 찾기  (0) 2023.05.03

+ Recent posts