-
30. JadenCase 문자열 만들기코딩 테스트/Level 2 2020. 8. 14. 10:17반응형
https://programmers.co.kr/learn/courses/30/lessons/12951
JadenCase 문자열 만들기
연습문제
3010명 완료문자열을 다루는 함수들을 몰라도..
어렵지 않게 풀수 있지만..
알면 더 편하다.파이썬
def solution(s): words = s.split(' ') for i, word in enumerate(words): words[i] = word.capitalize() return ' '.join(words)
테스트 1 〉 통과 (0.04ms, 10.7MB) 테스트 2 〉 통과 (0.04ms, 10.7MB) 테스트 3 〉 통과 (0.04ms, 10.7MB) 테스트 4 〉 통과 (0.04ms, 10.7MB) 테스트 5 〉 통과 (0.05ms, 10.5MB) 테스트 6 〉 통과 (0.04ms, 10.6MB) 테스트 7 〉 통과 (0.06ms, 10.7MB) 테스트 8 〉 통과 (0.05ms, 10.7MB) 테스트 9 〉 통과 (0.04ms, 10.7MB) 테스트 10 〉 통과 (0.04ms, 10.7MB) 테스트 11 〉 통과 (0.04ms, 10.6MB) 테스트 12 〉 통과 (0.04ms, 10.7MB) 테스트 13 〉 통과 (0.04ms, 10.6MB) 테스트 14 〉 통과 (0.05ms, 10.7MB) 테스트 15 〉 통과 (0.05ms, 10.7MB) 테스트 16 〉 통과 (0.04ms, 10.7MB)
def solution(s): return ' '.join(map(lambda x: x.capitalize(), s.split(' ')))
테스트 1 〉 통과 (0.05ms, 10.7MB) 테스트 2 〉 통과 (0.07ms, 10.7MB) 테스트 3 〉 통과 (0.05ms, 10.7MB) 테스트 4 〉 통과 (0.05ms, 10.8MB) 테스트 5 〉 통과 (0.05ms, 10.6MB) 테스트 6 〉 통과 (0.05ms, 10.6MB) 테스트 7 〉 통과 (0.05ms, 10.7MB) 테스트 8 〉 통과 (0.05ms, 10.7MB) 테스트 9 〉 통과 (0.05ms, 10.7MB) 테스트 10 〉 통과 (0.04ms, 10.6MB) 테스트 11 〉 통과 (0.05ms, 10.7MB) 테스트 12 〉 통과 (0.05ms, 10.7MB) 테스트 13 〉 통과 (0.04ms, 10.7MB) 테스트 14 〉 통과 (0.05ms, 10.8MB) 테스트 15 〉 통과 (0.06ms, 10.7MB) 테스트 16 〉 통과 (0.04ms, 10.6MB)
map(함수, 이터러블)을 실행하면
이터러블의 각각의 엘리먼트에 함수를 먹여서
이터레이터로 돌려준다.이터레이터이기 때문에
확인을 하려면
리스트나 튜플 등으로 바꿔줘야 한다.>>> map(len, ["1234","1","23"]) <map object at 0x0466e9c0> >>> tuple(map(len, ["1234","1","23"])) (4, 1, 2)
Java
자바의 split는 꼬다리의 빈 문자열을 날려버린다.
" ".split(" ")의 결과는 [] 텅빈 배열이다.
" s ".split(" ") 은 [, , s] 이다.
앞은 왜 살려두냐구?" ".split(" ", -1) 을 해야 꼬다리의 빈 문자열이 인식된다.
자바에서 예측 불가능한 게
이 함수 뿐만이 아니니.. 머..
중구난방 API ㅎㅎㅎclass Solution { public String solution(String s) { var sSplit = s.toLowerCase().split(" ", -1); for (var i = 0; i < sSplit.length; i++) if (sSplit[i].length() > 0) sSplit[i] = sSplit[i].substring(0, 1).toUpperCase() + sSplit[i].substring(1); return String.join(" ", sSplit); } }
테스트 1 〉 통과 (1.32ms, 67.2MB) 테스트 2 〉 통과 (1.80ms, 76.3MB) 테스트 3 〉 통과 (1.94ms, 76.3MB) 테스트 4 〉 통과 (1.50ms, 65.4MB) 테스트 5 〉 통과 (1.59ms, 81.4MB) 테스트 6 〉 통과 (1.29ms, 66.9MB) 테스트 7 〉 통과 (1.67ms, 83.3MB) 테스트 8 〉 통과 (1.66ms, 70.3MB) 테스트 9 〉 통과 (2.13ms, 79.1MB) 테스트 10 〉 통과 (1.37ms, 74.4MB) 테스트 11 〉 통과 (1.74ms, 71.7MB) 테스트 12 〉 통과 (2.00ms, 70.2MB) 테스트 13 〉 통과 (1.47ms, 74.1MB) 테스트 14 〉 통과 (1.80ms, 76.6MB) 테스트 15 〉 통과 (1.74ms, 70.3MB) 테스트 16 〉 통과 (2.37ms, 74.8MB) 테스트 17 〉 통과 (1.32ms, 83.9MB) 테스트 18 〉 통과 (1.61ms, 71.9MB)
빠르게....
class Solution { public String solution(String s) { var spaceCheck = true; var answer = s.toLowerCase().toCharArray(); for (var i = 0; i < answer.length; i++) { if (spaceCheck && answer[i] >= 97) answer[i] -= 32; spaceCheck = (answer[i] == ' '); } return String.valueOf(answer); } }
테스트 1 〉 통과 (0.02ms, 79.1MB) 테스트 2 〉 통과 (0.04ms, 88.6MB) 테스트 3 〉 통과 (0.03ms, 80.8MB) 테스트 4 〉 통과 (0.04ms, 83.1MB) 테스트 5 〉 통과 (0.07ms, 74.3MB) 테스트 6 〉 통과 (0.06ms, 72.7MB) 테스트 7 〉 통과 (0.04ms, 74.1MB) 테스트 8 〉 통과 (0.03ms, 74.9MB) 테스트 9 〉 통과 (0.04ms, 76.7MB) 테스트 10 〉 통과 (0.02ms, 73.2MB) 테스트 11 〉 통과 (0.04ms, 73.9MB) 테스트 12 〉 통과 (0.03ms, 75.1MB) 테스트 13 〉 통과 (0.03ms, 77.4MB) 테스트 14 〉 통과 (0.05ms, 76MB) 테스트 15 〉 통과 (0.05ms, 75.7MB) 테스트 16 〉 통과 (0.03ms, 74.2MB) 테스트 17 〉 통과 (0.04ms, 77.2MB) 테스트 18 〉 통과 (0.03ms, 77.3MB)
반응형