오늘의 문제 : JadenCase 문자열 만들기
걸린시간 : 7분
권장시간 : 30분
오늘의 회고
- 문자열을 반복하며 해당하는 문자를 변환하면 되는 문제입니다. o(n)
- 확실히 파이썬이 내장 메서드가 다양해 더 수월하다는 것을 알 수 있었습니다.
문제 풀이
1. javascript
function solution(s) {
var answer = '';
return s.split(" ").map(v=>v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}
2. python
def solution(s):
answer = ' '.join( [item.capitalize() for item in s.split(" ")] )
return answer
챌린저문제 : 문자열 압축
걸린시간 : 2시간
권장시간 : 1시간
오늘의 회고
- 문자열을 완전탐색하여 해당 문자열과 동일한 문자열이 반복되는 경우에 압축하여 표현하면 된다. 그러나 구현 방법이 생각나지 않아 다른 사람의 풀이를 참조했다.
- 생각했을 때, 핵심적인 부분은 대상 문자열과 이후의 문자열을 확인해야하기 때문에 o(n^2) 시간복잡도를 가진다는 것이다. 그리고 해당 문자열의 반복문 간격을 대상 문자열의 길이만큼으로 조정하는 것이다.
- 혼자서 풀수 있을 때까지 반복해서 공부하자.
문제 풀이
1. javascript
function solution(s) {
var answer = s.length;
// n개 단위로 문자열을 잘라 압축했을 때, 가장 짧은 것의 길이를 리턴
for(let i=1; i<s.length ; i++) {
let b = '';
let cnt = 1;
let word = s.slice(0,i)
for(let j=i; j<s.length; j+=i){
let temp = s.slice(j,i+j);
if(word === temp) {
cnt++;
}else {
if (cnt > 1) {
b += cnt + word
} else {
b += word
}
word = temp;
cnt = 1;
}
}
if(cnt > 1) {
b += cnt + word
} else {
b += word
}
answer = Math.min(answer, b.length)
}
return answer;
}
2. python
- 위와 동일
느낀점
- 완전탐색을 파악했으나, 문제 구현 능력이 아직 부족하다.
'TIL' 카테고리의 다른 글
99클럽 6일차 TIL (240727) (0) | 2024.07.27 |
---|---|
99클럽 5일차 TIL (240726) (0) | 2024.07.26 |
99클럽 3일차 TIL (240724) (0) | 2024.07.24 |
99클럽 코테 스터디 2일차 TIL (240723) (1) | 2024.07.23 |
99클럽 코테 스터디 1일차 TIL (240722) (3) | 2024.07.22 |