일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- DP
- dfs
- 배열
- LIS
- 백트래킹
- Python
- 백준
- oracle
- 빅데이터
- 완전탐색
- SQL
- 알고리즘
- 구현
- 탐색
- Java
- 아스키코드
- BFS
- 다이나믹프로그래밍
- 그리디
- 프로그래머스
- 다리 만들기
- Stack
- 스택
- HashMap
- Queue
- 시뮬레이션
- 문자열
- BufferedReader
- 새벽코딩
- 브루트포스
Archives
- Today
- Total
새벽코딩
[프로그래머스] 이상한 문자 만들기 (JAVA) 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12930
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
"try hello world" | "TrY HeLlO WoRlD" |
※ JAVA 코드 (이상한 문자 만들기)
class Solution {
public String solution(String s) {
String answer = "";
int idx = 0;
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c == ' '){
answer += c;
idx = 0;
} else {
if (idx % 2 == 0 && (c >= 97 && c <= 122)) {
answer += (char) (c - 32);
idx++;
} else if (idx % 2 != 0 && (c >= 65 && c <= 90)) {
answer += (char) (c + 32);
idx++;
} else {
answer += c;
idx++;
}
}
}
return answer;
}
}
※ 생각정리 (이상한 문자 만들기)
1. 문자열의 처음부터 끝까지 반복한다.
2. 현재 인덱스의 원소가 공백인경우 값은 그대로 담고 idx를 0으로 초기화한다.
3. 아닐경우 idx가 짝수이며 소문자인경우 대문자로 변경
4. 아닐경우 idx가 홀수이며 대문자인경우 소문자로 변경
5. 둘다 아닐경우 그대로 담고 3, 4, 5과정 모두 idx를 증가해준다.
level1 문제는 간략히 설명하고 넘어가겠습니다. 감사합니다.
- 새벽코딩 -
반응형
'알고리즘' 카테고리의 다른 글
[Softeer] 강의실 배정 (JAVA) (0) | 2023.08.22 |
---|---|
[프로그래머스] 숫자의 표현 (JAVA) (level2) (0) | 2023.08.16 |
[프로그래머스] 3진법 뒤집기 (JAVA) (0) | 2023.08.10 |
[프로그래머스] 이진 변환 반복하기 (JAVA) (level2) (0) | 2023.08.10 |
[프로그래머스] 같은 숫자는 싫어 (JAVA) (0) | 2023.08.07 |
Comments