문제 링크 : https://www.acmicpc.net/problem/2744
난이도 |
알고리즘 | |
브론즈5 | 구현, 문자열 |
대소문자 바꾸기
1. 요구 사항 이해
시간, 메모리 제한 : 1초 / 128MB
입력받은 최대 100자 문자열을 대문자는 소문자로 소문자는 대문자로 변환
2. 설계/검증
대소문자 구분
대소문자 변환
- 아스키코드의 숫자 차이를 이용
System.out.println((char)('A' + 32)); // a
System.out.println((char)('a' - 32)); // A
시간 복잡도 | 최악의 경우 | 공간 복잡도 |
O(N) | -- | O(N) |
함수화
static void changeCase(String word){
if ("대문자인 경우"){
// 소문자로 변경
}else("소문자인 경우"){
// 대문자로 변경
}
}
3. 정상 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
String word = scanner.next(); // 사용자로부터 입력 받은 문자열 저장
System.out.println(changeCase(word)); // changeCase 매서드 호출 및 결과 출력
}
// 대소문자 바꾸기 매서드 changeCase
static String changeCase(String w) {
char[] charArray = w.toCharArray(); // 입력받은 문자열을 char 배열로 변환
for (int i = 0; i < w.length(); i++) {
char ch = charArray[i];
// 대문자인 경우 소문자로 변경
if('A' <= ch && ch <='Z'){
charArray[i] = (char) (ch - 'A' + 'a');
// 소문자인 경우 대문자로 변경
} else if('a' <= ch && ch <= 'z'){
charArray[i] = (char) (ch - 'a' + 'A');
}
}
// 변경된 char 배열을 다시 String으로 변환하여 객체를 반환
return new String(charArray);
}
}
4. 추가 정리
toCharArray
문자열을 새로운 char 배열로 변환
'◖코딩 테스트◗▬▬▬▬▬▬▬▬▬ > 백준' 카테고리의 다른 글
[백준](2024) 소금 폭탄 (설명/코드/정답) (0) | 2024.02.20 |
---|---|
[백준](2024) 문서 검색 (설명/코드/정답) (0) | 2024.02.20 |
[백준](2024) 단어 공부 (설명/코드/정답) (0) | 2024.02.19 |
[백준](2024)애너그램 만들기(설명/코드/정답) (0) | 2024.02.19 |
[백준] 깃허브 자동 커밋 연동(2024) (0) | 2024.02.17 |