[프로그래머스 Lv.0] 직사각형 넓이 구하기, 캐릭터의 좌표, 최댓값 만들기 (2), 다항식 더하기

blockzzie·2023년 5월 11일
0

프로그래머스

목록 보기
50/52

직사각형 넓이 구하기

나의 답

function solution(dots) {
    var a = dots.map(c=> c[0])
    var x = Math.max(...a) - Math.min(...a)
    var b = dots.map(c=> c[1])
    var y = Math.max(...b) - Math.min(...b)
    return x*y
}

수도코드 생각하면 쉬워짐 ... 나머지 매개변수 쓰면 배열에서 벗겨지남?

캐릭터의 좌표

나의 답

function solution(keyinput, board) {
    var answer = [0, 0]; 
    let x = Math.floor(board[0]/2)
    let y = Math.floor(board[1]/2) 
    for(i=0; i<keyinput.length; i++){ 
        if(keyinput[i] === "left" && answer[0] > -x) {
            answer[0] -= 1
        } else if(keyinput[i] === "right" && answer[0] < x) {
            answer[0] += 1
        } else if(keyinput[i] === "up" && answer[1] < y) {
            answer[1] += 1
        } else if(keyinput[i] === "down" && answer[1] > -y) {
            answer[1] -= 1
        } 
    }

    return answer
}

board를 2로 나누는 것 까지 괜찮았으나 x, y에 할당해서 - 붙여서 연산해야겠다는 생각을 못했다. 매번 한, 두 줄로 끝내는 코드만 짜니까 변수가 많아지면 못 푸는 것같으니 익숙해지기

최댓값 만들기 (2)

나의 답

function solution(numbers) {
    let a = numbers.length
    numbers.sort((a,b)=> b-a)
    if(numbers[0]*numbers[1] > numbers[a-1]*numbers[a-2]){
        return numbers[0]*numbers[1]
    } else {
        return numbers[a-1]*numbers[a-2]
    }
}

if를 써서 비교했지만, Math.max( numbers[N-1] * numbers[N-2], numbers[0] * numbers[1] ) Math.max를 쓰면 더 짧게 표현할 수 있다. 접근 자체는 따봉 제일 많은거랑 같아서 굿

다항식 더하기

나의 답

function solution(polynomial) {
    var answer = '';
    polynomial = polynomial.split(' + ') 
    let xNum = 0;
    let num = 0;
  polynomial.forEach((e) => {
      if (e.includes('x')) {
          const x = e.split('x');
          if (x[0] === '') xNum++;
          if (x[0] !== '') xNum += Number(x[0]);
      }
      if (!e.includes('x')) num += Number(e);
  })

  if (xNum !== 0 && num !== 0) return xNum === 1 ? `x + ${num}` : `${xNum}x + ${num}`;
  if (xNum !== 0 && num === 0) return xNum === 1 ? 'x' : `${xNum}x`;
  if (xNum === 0 && num !== 0) return `${num}`;
  if (xNum === 0 && num === 0) return '0';


    return polynomial
}

못풀어서 본 남의 답...

profile
막무가내 코딩노트

0개의 댓글