728x90
반응형

1. 문제점

2. 시도해본 것들

오전에 발제내용을 확인했다.

이커머스 홈페이지를 만들고

소켓활용과 아키텍처 패턴, 테스트코드 작성, 장바구닝 기능 등

이전과 비슷하지만 추가해야할 기능이 늘어났다.

 

3. 해결과정

우선 팀원끼리 첫날이니 S.A 작성하고 API, 데이터모델링을 했다.

기본을 튼실하게 쌓고 가는게 좋을 것 같았다.

 

4. 알게 된 점

프로젝트 시작전에 중요시 해야할 부분과 협업git활용을 배웠다.

팀원끼리 상의를 통해 모두 정리하니

저녁시간이었고, 남은 시간은 프론트쪽 html을 가볍게 만들어보았다.

오늘은 머리싸매고 하루종일 정리하였으니

내일부턴 하루종일 코딩할 것 같다.

728x90
반응형
728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 가위바위보 ]

2. 시도해본 것들

처음 봤을땐 막막했다. 문제 풀때마다 왜 이러지ㅋㅋㅋ

일단 모두 이기는 경우니까 경우의 수는 3개

그럼 for문 안에서 if문으로 걸러내야 겠다고 생각했다.

 

3. 해결과정

일단 문제를 글로 쓰면서 이해했다.

 

//  가위는 2, 바위는 0, 보는 5 손가락 갯수
// 가위는 2 > 보 5
// 바위는 0 > 가위 2
// 보는 5 > 바위 0

 

좀 알아보긴 어렵지만 이렇게 써서 문제를 이해하고 코드로 구현해봤다.

4. 알게 된 점

 

나의 문제풀이

function solution(rsp) {
    var answer = '';
//  가위는 2, 바위는 0, 보는 5 손가락 갯수
// 가위는 2 > 보 5
// 바위는 0 > 가위 2
// 보는 5 > 바위 0
    
    for(i=0; i<rsp.length; i++){
        if(rsp[i] == "5"){
           answer += 2;
        } else if (rsp[i] == "0"){
           answer += 5;
        } else {
           answer += 0;
        }
    }
    
    return answer;
}

타입스크립트면 어림도 없겠지만,

문자열도 배열처럼 사용할 수 있다는걸 이전에 배워서

타입변환없이 answer에 더했더니 정답이었다.

 

남의 문제풀이

/*
 가위는 2 바위는 0 보는 5
*/
function solution(rsp) {
    let arr = {
        2: 0,
        0: 5,
        5: 2
    };
    var answer = [...rsp].map(v => arr[v]).join("");
    return answer;
}

객체로 만들어서 map을 이용한 풀이법

깔끔하고 이해하기 쉽다. for문으로 모든걸 풀고 있지만

for문 없이 이런식으로 풀고 싶다ㅠㅠㅠ

이걸 봤으니 한번 머리에 외워두고 당장 코드로 적어봐야겠다.

728x90
반응형
728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 암호해독 ]

2. 시도해본 것들

배열이면 쉬울텐데, 배열로 하고 싶지 않았다.

매번 배열<=>문자열 왔다갔다하는게 귀찮았기 때문..

이번엔 문자열만으로 원하는 단어만 뽑아내보기로 했다.

 

3. 해결과정

첫번째 알파벳은 배열이라면 어떻게 구할까?

인덱스는 0부터 시작이니 code에서 -1만 하면 될것이다.

i = code-1;

그리고 code 만큼 더하면 의도대로 뽑아낼 수 있다.

 

4. 알게 된 점

 

나의 문제풀이

function solution(cipher, code) {
  var answer = "";
    for(i= code-1; i<cipher.length; i+=code ){
        answer += cipher[i];
    }
    return answer;
}

문자열을 배열처럼 생각하고 풀이했더니 통과되었다!

 

 

남의 문제풀이

unction solution(cipher, code) {
    return cipher.split('').filter((v,i)=>(i+1)%code===0).join('');
}

대부분 split , filter로 풀었는데

사실 뭔소린지 잘 모르겠다......

구글링해서 해석해야지

728x90
반응형
728x90
반응형

TIL의 회고 : 이번주 알게 된 점 총정리

타입스크립트 기간이지만 여러번 반복해서 공부했기에

기반이 되는 자바스크립트 공부를 더 하고 있다.

Deep Dive 책을 정독하고 있고,

노드교과서라는 책도 읽고 있는 중이다.

알고리즘도 꾸준히 풀다보니 익숙해지는 문법들이 생겨나고 있다.

 

이번 주 목표 달성 여부

타입스크립트 실전공부는 하지 못했다.

이전까진 강의만 주로 들었는데

이번엔 책을 통해 기본 개념을 다시 정립하는 중이다.

다음 주 목표 세우기

다음주부터는 프로젝트 기간이다.

월,화는 공부기간이니 그때 다시 한번

타입스크립트 공부를 하고 남은 프로젝트 기간동안 몰입할 예정

728x90
반응형
728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [대문자와 소문자]

2. 시도해본 것들

 

문제를 보고 for문을 이용해

첫번째 인덱스가 대문자라면(if) 소문자로! 소문자라면(if) 대문자로!

노가다하기로 결심했다.

바꾸는 과정은 아는데 if문에서 소문자인지 대문자인지 어떻게 알 수 있을까..?

 

3. 해결과정

해결방법은 arr[i] 와 변환시켜둔 arr[i].toLowercase() 가 같은지 확인하면 되는 것 이었다.

배열값을 두고 이게 소문자로 변환시킨 배열값과 동일한가?

 

if( arr[i] == arr[i].toLowerCase() )

 

4. 알게 된 점

 

나의 문제풀이

function solution(my_string) {
    var answer = [];
    var arr = Array.from(my_string);
    for(i=0; i<my_string.length; i++){
        if(arr[i] == arr[i].toLowerCase() ){
           answer[i] = arr[i].toUpperCase()
        } else {
             answer[i] = arr[i].toLowerCase()
        }
    }
    return answer.join('');
}

이제 문자열 <=> 배열 왔다갔다 하는건 익숙해진듯 하다.

마지막 배열을 join('')까지 익숙해졌다.

 

 

남의 문제풀이

function solution(my_string) {
    var answer = '';
    for (let c of my_string) answer += c === c.toLowerCase() ? c.toUpperCase() : c.toLowerCase();
    return answer;
}

문자열만으로 해결

게다가 삼항연산자로 깔끔하게 해결되었다. 위와 같이 풀 수 있도록 연습해야지.

728x90
반응형
728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [모음제거]

2. 시도해본 것들

문자열을 배열로 바꿔준후, for문에서 모음에서 해당하는 인덱스를 삭제했다.

function solution(my_string) {
    var answer = '';
    var arr = Array.from(my_string);
    for(i=0; i<my_string.length; i++){
        if (arr[i] === 'a' || arr[i] === 'e' || arr[i] === 'i' || arr[i] === 'o' || arr[i] === 'u'){
            arr.splice(i,1);
        }
    }
    return arr.join('');
}

근데 테스트 결과값이 이상하다.. 왜이러지?

모음이 짤리다 마는 결과값이 나왔다.

3. 해결과정

내 코드가 이상한건 없는것 같은데 뭐가 문제일까......?

사실 구글링으로 찾으려면 문제점을 알아야 물어볼 수 있을텐데,

알 수가 없어서 GPT에게 물어봤다.

for문을 반대로 돌리는 코드값을 줬다. 실행해보니 통과.

근데 왜 거꾸로 돌려야하는거지 궁금해서 추가질문을 했다.

4. 알게 된 점

 

나의 문제풀이

function solution(my_string) {
    var answer = '';
    var arr = Array.from(my_string);
    for(i=my_string.length-1; i>=0; i--){
        if (arr[i] === 'a' || arr[i] === 'e' || arr[i] === 'i' || arr[i] === 'o' || arr[i] === 'u'){
            arr.splice(i,1);
        }
    }
    return arr.join('');
}

문자열만으로 끝내고 싶었는데

아는 것이 없다보니 이런 유형 문제는

항상 문자열 <=> 배열을 왔다갔다하는 노가다로 풀게 된다ㅠㅠ

 

 

남의 문제풀이

function solution(my_string) {
    return my_string.replace(/[aeiou]/g, '');
}

깔끔하다. 이런식으로 풀고 싶었는데 정규표현식을 이렇게 쓸 수 있구나.

function solution(my_string) {
    return Array.from(my_string).filter(t => !['a', 'e', 'i', 'o', 'u'].includes(t)).join('');
}

필터도 사실 생각나긴 했는데 잘 몰라서 노가다해야지 했다.

근데 그냥 필터라는 함수에 익숙해질겸 한번 사용해볼껄 그랬다.

728x90
반응형
728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [숨어있는 숫자의 덧셈(1)]

2. 시도해본 것들

처음에는 다음과 같이 코드를 작성했다.

typeof로 체크하여 숫자일 경우 덧셈하면 끝날지 알았는데

문자열 숫자는 문자열로 처리하기에 추가가 되지 않았다.

function solution(my_string) {
     var answer = 0;
     var num = Array.from(my_string);
     for(i=0; i<my_string.length; i++ ){
         if( typeof(num[i]) === 'number' ){
             answer += Number(num[i]);
         }
     }
     return answer;
}

3. 해결과정

isNaN(); (NaN을 가지고 있는지에 따라 true, false를 반환하는 함수)

이것을 이용해서 배열값이 숫자를 가지고 있는지 없는지를 판단하도록 했다.

4. 알게 된 점

 

나의 문제풀이

function solution(my_string) {
    var answer = 0;
    var num = Array.from(my_string); 
    for(i=0; i<my_string.length; i++ ){
        if( isNaN(Number(num[i])) == false ){ 
            answer += Number(num[i]); 
        }
    }
    return answer;
}

배열값을 숫자화 시킨다음 isNaN인지 판단한다.

true면 당연히 숫자가 아니므로 넘겨야하고,

false면 숫자이기에 answer에 더해주면 된다.

 

 

남의 문제풀이

function solution(my_string) {
    return my_string.match(/[0-9]/g).reduce((a,b) => parseInt(a)+parseInt(b));
}

정규식을 이용한 풀이방법..내겐 어렵다..ㅠㅠ

728x90
반응형
728x90
반응형

TIL의 회고 : 이번주 알게 된 점 총정리

이번주는 타입스크립트 기간이었다.

코딩앙마 - 타입스크립트를 여러차례 듣고, 게시물로 정리했고

노마드코더 - 타입스크립트 블록체인을 3일간 들었다.

마지막날은 정영훈 튜터님의 타입스크립트를 들을 예정

 

타입스크립트는 기본 개념만 들을 땐,

쉬운 것 같았으나 핸드북으로 보면

열심히 꼬아둔 느낌이어서 어렵게 느껴진다.

 

타입스크립트 기간은 2주니까

좀더 열심히 해야겠다.

 

https://pyoja.tistory.com/156

타입스크립트 정리내용

 

이번 주 목표 달성 여부

살짝 빠듯하긴 했지만 모든 목표는 달성했다.

초과 설정한 목표도 오늘내로 달성예정

- 타입스크립트 정리

- 그외 알고리즘문제풀이, deep dive 책, 산책 등

 

다음 주 목표 세우기

 

1) 타입스크립트 실전 공부(코딩)

2)  알고리즘 문제풀이

3) 자바스크립트 공부 병행

728x90
반응형

+ Recent posts