프로그래밍 문제 21번 이상한 문자 만들기
이 문제는 프로그래머스에서 제공된 문제를 풀이한 문제이며, 저작권은 프로그래머스에게 있습니다.
언어 : Java
문제번호 : 21번
문제 : 이상한 문자 만들기
문제설명 :
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예시
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
Java.solution
class Solution {
public static String solution(String s) {
String answer = "";
String num[] = s.split("");
for (int i = 0; i < s.length(); i++) {
if (i % 2 == 0){
answer += num[i].toUpperCase();
}else{
answer += num[i].toLowerCase();
}
}
System.out.println(answer);
return answer;
}
}
답안 도출 과정:
1. 문자열을 받을 수있는 String 타입 배열 s 에서 .split("") 을 이용해서 , 하나씩 String 타입 배열 num에 넣는다.
2. 반복문 for 문을 활용하여 s 배열의 길이만큼 for문을 반복하고, i는 0부터 시작하고 i는 1씩 증가하게 한다.
3. 조건문 if 문을 활용하여 i를 2로 나눈 나머지가 0인경우 (= 짝수) 인경우는 num배열의 [i]번째 문자를 꺼내서 toUpperCase() 를 이용해서 대문자로 만든다. 그리고 answer에 입력한다.
4. 짝수가 아닌경우 , i를 2로 나눈 나머지가 0이 아닌경우 (=홀수) 인경우는 num배열의 [i] 번째 문자를 꺼내서
toLowerCase() 를 이용해서 소문자로 만든다. 그리고 answer에 입력한다.
5. Sytem.out.print()를 이용해서 answer의 값을 찍어보고 answer로 리턴한다.
------메인메소드추가-------
6. 실행 메소드 (main 메소드)를 만든다.
7. Scanner 클래스를 임포트 하고 Scanner sc = new Scanner(Sytem.in); 을 통해 값을 찍어볼 수 있도록 한다.
8. String 타입으로 배열 s를 지역변수로 선언하고 Scanner 클래스의 메소드인 .nextLine()을 사용한다.
9. System.out.println() 을 사용해서 solution21 메소드의 s 문자열을 찍어본다.
실행메소드추가 / sacaner 클래스 이용해서 Try Hello Wold 찍어보기
import java.util.Scanner;
/**
* 문제 21번 이상한 문자 만들기
*/
class Solution21 {
public static String solution21(String s) {
String answer = "";
String num[] = s.split("");
for (int i = 0; i < s.length(); i++) {
if (i % 2 == 0){
answer += num[i].toUpperCase();
}else{
answer += num[i].toLowerCase();
}
}
System.out.println(answer);
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println(solution21(s));
}
}