function findShortestOfThreeWords(word1, word2, word3) {
let shortestWord = word1
if(word1.length > word2.length){
shortestWord = word2
if(word2.length > word3.length){
shortestWord = word3
}
}
else{
if(word1.length > word3.length){
shortestWord = word3
}
}
return shortestWord
}
//word1,word2,word3을 입력받는다
//먼저 shortest를 선언해주고 word1을 할당해준다
//만약 word1.length과 word2.length를 비교했을 때, word2.length가 더 짧다면 shortest에 word2를 할당해준다
//만약 word3.length이 word2.length보다 더 짧다면, word3을 shortest의 값으로 재할당해준다
//만약 word1.length와 word3.length를 비교했을때, word3.length가 더 짧다면 word3를 shortest의 값으로 재할당해준다
//shortest를 리턴한다
이것도 수도코드를 적는게 쉽지않아서 많이 수정했다
if문안에 if를 넣는건 word1,2의 길이를 비교하고 , word2,word3을 비교하는일이 별개가 아니라 한 과정이기 때문에 if문안에 또 if문을 넣은 것이었다
// 입력받은 시, 분, 초에 1초를 더한 결과값을 반환한다
// 만약 입력받은 초에 1을 더해서 60이상이 되면 초를 0으로 초기화하고 분에 1을 더한다
// 만약 분이 60이상이 되면 분을 0으로 초기화하고 시에 1을 더한다
// 만약 시가 24이상이 되면 시를 0으로 초기화한다
// 그리고 백팁을 사용해서 시, 분, 초를 문제에서 요구하는 특정 문장으로 만들고 반환한다
// 위 조건들중 아무 조건에 해당하지 않으면 초에 1을 더한다
// 그리고 백팁을 사용해서 시, 분, 초를 문제에서 요구하는 특정 문장으로 만들고 반환한다
function addOneSecond(hour, minute, second) {
if(second + 1 >= 60) {
second = 0
minute = minute + 1
if(minute >= 60) {
minute = 0
hour = hour + 1
}
if(hour >= 24) {
hour = 0
}
}
else{
second = second + 1
}
return `1초 뒤에 ${hour}시 ${minute}분 ${second}초 입니다`
}
시계를 보면 일단 심적으로 좀 쫄린다 ㅜㅜ 당황스럽고 흑흑..
수도코드를 좀더 프로그래밍코드가 아닌 사람의 말로 풀어서 써야겠다
코딩을 모르는 사람이 봐도 풀 수 있도록
function getLargestElement(arr) {
let max = arr[0]
for(let el of arr) {
if(el > max){
max = el
}
}
return max
}
//배열 arr을 입력받아 가장 큰 요소를 리턴한다
//max를 선언하고 arr[0]을 할당해준다
//for문을 사용해서 arr의 요소들을 하나하나 살펴본다
//요소들중 가장 큰 요소가 max가 된다
//max를 리턴한다
for문으로는 전에도 맞췄지만 for of로는 안써봐서 당황했다
하지만 일반 for문과 하는 방법은 일치했다.
function getLongestWord(str) {
let word = str.split(' ')
let longest = word[0]
for(let i = 1; i < word.length; i++) {
if(word[i].length > longest.length) { //**********
longest = word[i]
}
}
return longest
}
//문자열을 입력받아 가장 긴 단어를 리턴해야한다.
//word라는 변수를 선언해주고 str.split(' ') 로 할당시켜준다
//longest라는 변수를 선언해주고 word[0]를 할당한다
//for문을 사용해 word를 하나하나 살펴본다 i는 1로 할당을해주고 i는 word.length보다 작다 i++
//만약 word[i]의 길이가 longest의 길이보다 길다면 longest는 word[i]로 재할당시킨다
//그렇지않고 작다면 반복문을 계속 진행시킨다
//그렇지 않고 같다면 longest에 새로운 값을 넣지 않는다
//longest를 리턴해준다
***친부분을 몰랐는데 작동해서 왜 작동하는건가 싶었다longest의 길이와 word[i]의 길이가 같다면 --> longest는 앞에있는 word의 길이이기 때문에 같은길이의 단어가 나오면 앞에있는게 나온다function getElementOfArrayProperty(obj, key, index) {
let arrProperty = obj[key];
if(Array.isArray(arrProperty) === false) {
return undefined
}
return arrProperty[index]
}
//키의 값이 배열이고 index가 배열의 범위를 벗어나지 않는다면
//arrProperty[index]의 값이 나온다
//그렇지 않으면 undefined를 리턴한다
쉬워보이지만 Array.isArray 메소드의 존재를 잊고있어서 꽤나 헤맸다ㅜ
edgecase를 if문에 넣어주고 일반적인 케이스는 밖에다가 두었다
쉬운거부터 작동하게 만들고 그 다음에 못한거 작동하자
단계별로 고민하자 문제를 어떻게 풀어나갈지 쪼개서 코딩하자