문제

정답
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
for(int i = 0; i < a.length(); i++) {
char c = a.charAt(i);
if(Character.isUpperCase(c)){
answer += Character.toLowerCase(c);
} else {
answer += Character.toUpperCase(c);
}
}
System.out.println(answer);
}
}
개념설명
1. import.java.util.Scanner;
import.java.util.Scanner;
✔️ 의미
- Scanner 클래스를 사용하겠다고 선언
- 키보드를 입력을 받기 위해 필요
2. 클래스 선언
public class Solution {
✔️ 의미
- Solution이라는 클래스 정의
- 자바 프로그램은 반드시 클래스 내부에서 실행
3. main 메서드 (프로그램 시작점)
pubic static void main(String[] args) {
✔️ 의미
- 프로그램 실행 시 가장 먼저 호출되는 메서드
| 요소 | 의미 |
| pulic | JVM 접근 허용 |
| static | 객체 생성 없이 실행 |
| void | 반환값 없음 |
| main | 고정 이름 |
| String[] args | 실행 인자 |
4. Scanner 객체 생성
Scanner sc = new Scanner(System.in);
✔️ 의미
- 키보드 입력을 받을 준비
5. 문자열 입력 받기
String a = sc.next();
✔️ 의미
- 키보드로 입력한 값을 문자열(String)로 받아
- 변수 a로 저장
✔️ 특징
- 공백 전까지만 입력 받음
6. 결과 문자열 초기화
String answer = "";
✔️ 의미
- 결과를 저장할 빈 문자열 생성
✔️ 왜 빈 문자열?
- 문자열은 null이 아니라 연결 가능한 초기값이 필요
- 이후 반복문에서 문자를 하나씩 붙이기 위함
7. for 반복문
for(int i = 0; i < a.length(); i++) {
✔️ 의미
- 문자열 a의 길이만큼 반복
✔️ for문 구조 분석
for(초기식; 조건식; 증감식)
1. 초기식
int i = 0;
- 문자열 인덱스는 0부터 시작
2. 조건식
i < a.length();
✔️ a.length()
- 문자열 a의 문자 개수 반환
3. 증감식
i++
- 다음 문자로 이동
8. 문자 하나 꺼내기
char c = a.charAt(i);
✔️ 의미
- 문자열 a에서
- i번째 문자를 꺼내
- char 타입 변수 c에 저장
✔️ 예시
a = "ABC"
i = 1
a.charAt(1) → 'b'
- char는 한 글자만 저장하는 타입
9. 대문자인지 검사
if(Character.isUpperCase(c)) {
✔️ 의미
- 문자 c가 대문자면 true
✔️ Character 클래스
- 문자 관련 유틸리티 클래스
- char를 검사/변환할 때 사용
✔️ 예시
'A' → true
'a' → false
10. 대문자 → 소문자 변환
answer += Character.toLowerCase(c);
✔️ 의미
- 대문자를 소문자로 변환
- 결과를 answer에 추가
11. else (소문자일 경우)
} else {
✔️ 의미
- 문자가 대문자가 아닐 때
- 즉, 소문자일 때 실행
12. 소문자 → 대문자 변환
answer += Character.toUpperCase(c);
✔️ 의미
- 소문자를 대문자로 변환
- 결과 문자열에 추가
13. 반복 종료 후 출력
System.out.println(answer);
✔️ 의미
- 변환이 끝난 문자열 출력
- 줄바꿈 포함
🔚 전체 실행 흐름 요약
- 프로그램 시작
- 문자열 입력
- 결과 문자열 준비
- 문자열 길이만큼 반복
- 문자 하나씩 검사
- 대소문자 변환
- 결과 출력
💡 핵심 포인트 정리
| 문법 | 의미 |
| length() | 문자열 길이 |
| charAt(i) | i번째 문자 |
| char | 문자 타입 |
| Character.isUpperCase() | 대문자 검사 |
| toLowerCase() | 소문자 변환 |
| toUpperCase() | 대문자 변환 |
| += | 문자열 이어 붙이기 |
💡 꿀팁
answer += ...
- 반복문 안에서는 비효율적
- 문자열이 많아지면 성능 저하
✔️ 실무 / 고급 버전
StringBuilder sb = new StringBuilder();
sb.append(character.toLowerCase(c));
System.out.println(sb.toString());
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
| [Java] 프로그래머스 코딩테스트 연습 / 덧셈식 출력하기 (0) | 2026.01.17 |
|---|---|
| [Java] 프로그래머스 코딩테스트 연습 / 특수문자 출력하기 (0) | 2026.01.17 |
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 반복해서 출력하기 (0) | 2026.01.15 |
| [Java] 프로그래머스 코딩테스트 연습 / a와 b 출력하기 (0) | 2026.01.13 |
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 출력하기 (0) | 2026.01.12 |