-
프로그래머스 : 이상한 문자 만들기코딩테스트 문제 풀이/프로그래머스 2023. 11. 22. 01:01
정말 간단한 문제인줄 알았는데 아니었다 🙄
다른사람 코드
class Solution { public String solution(String s) { String answer = ""; int cnt = 0; String[] array = s.split(""); for(String ss : array) { cnt = ss.contains(" ") ? 0 : cnt + 1; answer += cnt%2 == 0 ? ss.toLowerCase() : ss.toUpperCase(); } return answer; } }
정말 똑똑해..!! 이 사람은 문자열을 배열로 모두 분해해서 배열의 인덱스를 모두 순회하며 단어만의 인덱스를 계산할 cnt 변수를 만들어 사용하였고 단어에서 짝수번째 인덱스엔 toLowerCase() 를, 홀수번째 인덱스에는 toUpperCase()를 사용해주었다.
내 코드
class Solution { public String solution(String s) { String answer = ""; s = s.toLowerCase(); int beforeSpace = -1; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ' ' || i == s.length() - 1) { int afterSpace = i; int idx = 0; for (int j = beforeSpace + 1; j <= afterSpace; j++) { if (s.charAt(j) == ' ' || idx % 2 != 0) answer += s.charAt(j); else answer += (char)(s.charAt(j) - ('a' - 'A')); idx++; } beforeSpace = afterSpace; } } return answer; } }
숨겨진 테스트에서 대소문자가 섞여있는 단어들과 어쩌면 공백만 있는 단어가 있을 수도 있음을 알아챈 후 작성해본 코드였다... 다른사람 코드가 훨씬 간결하고 읽기 좋고 실행시간도 훨씬 짧았다. 오늘도 많이 배워갑니다 🤓
처음 풀어본 날짜 : 23.03.26 ~ 28
'코딩테스트 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 가운데 글자 가져오기 (0) 2023.11.22 프로그래머스 : 3진법 뒤집기 (0) 2023.11.22 프로그래머스 : 폰켓몬 (0) 2023.11.21 프로그래머스 : 소수 찾기 (0) 2023.11.21 프로그래머스 : 문자열 내 p와 y의 개수 (0) 2023.11.21