코딩테스트 제대로 준비 시작🔥
언어 : 자바스크립트, 파이썬
원래는 파이썬 사용하였으나 프론트엔드 개발자 희망하면 자바스크립트로 코테 준비하는 것도 좋겠다고 추천을 많이 받아서 일단 2개 다 공부해보는 걸로 !!
프로그래머스 레벨 2부터 풀기 시작해서 차근차근 레벨 올리기
Github - 링크텍스트
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
JavaScript
function solution(s) {
var answer = '';
numbers = s.split(' ').map(Number);
answer += Math.min(...numbers);
answer += " ";
answer += Math.max(...numbers);
return answer;
}
Math.min()
, Math.max()
로 사용map(Number)
사용Python
def solution(s):
answer = ''
numbers = list(map(int, s.split()))
answer += str(min(numbers))
answer += " "
answer += str(max(numbers))
return answer
list(map(int, [문자열 리스트])
통해 문자열 리스트의 원소 각각을 정수로 변경str()
사용할 것모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열 리턴
s | return |
---|---|
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
JavaScript
(1) 첫 번째 시도 - 답은 나오지만 런타임 에러로 실패
function solution(s) {
var answer = '';
words = s.split(" ");
words.map((word) => {
answer += word[0].toUpperCase();
answer += word.slice(1).toLowerCase();
answer += " "
});
answer = answer.slice(0, -1);
return answer;
}
(2) 두 번째 시도 - 채점 결과 점수는 올라갔으나 여전히 런타임 에러 발생
function solution(s) {
var answer = '';
const s_ary = [...s];
let isUpper = true
s_ary.map((element) => {
if (isUpper) {
answer += element.toUpperCase();
isUpper = false;
} else if (element === " ") {
answer += " "
isUpper = true
} else {
answer += element.toLowerCase();
}
})
return answer;
}`
(3) 정답 코드
function solution(s) {
var answer = '';
words = s.split(" ").map((word) => {
return word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()
});
answer = words.join(" ");
return answer;
}
return word[0].toUpperCase() + word.slice(1).toLowerCase()
을 return word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()
으로 수정하니 런타임 에러 해결됨str.charAt(index)
: 문자열에서 특정 인덱스에 위치하는 단일문자 반환str.substring(begin, end)
: 지정 인덱스 부분 문자열 반환Python
(1) 런타임 에러 발생 코드
def solution(s):
answer = []
words = s.split(" ")
for word in words:
answer.append(word[0].upper() + word[1:].lower())
return " ".join(answer)
(2) 정답 코드
def solution(s):
answer = []
words = s.split(" ")
for word in words:
answer.append(word.capitalize())
return " ".join(answer)
str.capitalize()
라는 더 간단한 방법이 있었음