개발 일지 (TIL)

TIL 2023 08 19

늘곰's 2023. 8. 19. 20:44

오늘 배운 것 

페어 프로그래밍을 하면서 느꼇던 것은

진짜 서로 생각하는 문제 해결법과 정답으로 가는 과정이 다양하나는 것!

내 코드를 짜는 것에서 끝이 아니라 다른 사람의 코드를 열심히 보고 이해하려고 노력하는것도 중요하다고 느낌

팀원과 페어 프로그래밍

콜라츠 추측

// 콜라츠 추측
// 문제해결
// while문 과 if 문의 중첩으로 해결
// num이 1이 아닐때 
// if 문으로 cnt( 횟수 변수)가 500보다 적을때 
// 짝수 와 홀수의 계산을 하고 cnt++로 횟수를 늘려준다
// cnt 가 500 일때 -1을 출력하고 break를 건다

function solution(num) {
    var cnt = 0;
    while(num !== 1){
        if(cnt<500){
            if(num%2 ===0){
                num = num/2
            }else{
                num = num*3 +1
            }
            cnt++
        }else if(cnt === 500){
           cnt = -1
            break 
        }        
    }
    return cnt;
}

 

서울에서 김서방 찾기

팀원의 네비게이터를 받고 너무 쉽게 풀림

// 서울에서 김서방 찾기
// 문제해결
// while 문으로 작성
// 인덱스를 만들 변수x를 지정
// while 문으로 seoul[x] 이 'Kim'이 아닐때
// x++시켜준다

function solution(seoul) {
    let x = 0;
    while(seoul[x] !== 'Kim'){
        x++
    }
    return '김서방은 ' + x + '에 있다';
}

내가 원래 생각했던 풀이법

function solution(seoul) {
    for (let i = 0; i < seoul.length; i++) {
        if (seoul[i] === 'Kim') 
            return `김서방은 ${i}에 있다`
    }
}

나누어 떨어지는 숫자 배열

팀원과 같이 푼 해결법

// 나누어 떨어지는 숫자 배열
// 배열의 각각을 / / divisor 로 나누었을때 떨어지는 숫자를 오름차순으로 정렬한다.
//.sort((a,b) a-b) 를 쓰면 오름 차순 으로 정렬
// for 문 반복 
// 나누어 떨어지지 않으면 -1
// 
function solution(arr, divisor) {
    var answer = [];
    let y = 0;
    for(let i = 0; i<arr.length ; i++){
        if(arr[i]%divisor === 0){
            answer[y] = arr[i]
            y++
        }
    }
    
    return y>0 ? answer.sort((a,b) => a-b) : [-1];
}

개인적으로 생각했던 해결법

function solution(arr, divisor) {
    var answer = [];
    for(i=0; i<arr.length; i++) {
      if(arr[i] % divisor === 0) {
        answer.push(arr[i]);
      }
    }
    if(answer.length === 0) {  
      answer.push(-1);
    }
    answer.sort((a,b) => a - b);
    return answer;
}