inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

1. 자리수의 합

질문

243

00

작성한 질문수 28

0

제가 영상 보기 전 혼자 풀어보았는데

function solution(n, arr) {
  let answer = 0,
    max_sum = 0;
  for (let x of arr) {
    let sum = 0,
      temp = x;
    while (temp) {
      sum += temp % 10;
      temp = Math.floor(temp / 10);
    }

    if (max_sum < sum || (max_sum === sum && answer < x)) {
      answer = x;
      max_sum = sum;
    }
  }
  return answer;
}

let arr = [128, 460, 603, 40, 521, 137, 123];
console.log(solution(7, arr));

저는 if 문을 (max_sum < sum || (max_sum === sum && answer < x)) 이렇게 하나로 묶어서 썼는데 괜찮을까요 ?

 

그리고 선생님께서 max를 초기화할때 Number.MIN_SAFE_INTEGER 로 하셨는데 어차피 각자리수의 합이 0보다는 클것이라는 생각이 들어서 저의 경우엔 0으로 초기화 했는데 괜찮을까요?

javascript 코딩-테스트

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
User00님, 자바스크립트 코드에 관한 질문을 주셔서 감사합니다.

if 조건을 하나로 묶어서 사용하는 부분은 코드를 간결하게 하며 로직을 정확히 표현한다면 전혀 문제가 없습니다. User00님이 작성하신 if 조건문은 각 자리수의 합(sum)이 큰 숫자를 찾되, 같을 경우 원래 숫자(x)가 더 큰 것을 찾는 로직으로 보입니다. 이는 매우 효과적인 방법이므로 괜찮습니다.

max_sum을 0으로 초기화하는 부분 또한 가능합니다. 문제에서 주어진 arr의 모든 요소가 양의 정수라면 각 자리수의 합이 언제나 0보다 클 것이기 때문에, Number.MIN_SAFE_INTEGER보다 0으로 초기화하는 것이 더 직관적이고 적절할 수 있습니다. 단, 반드시 모든 입력 값이 양수라는 보장이 있을 때만 이 방식을 추천합니다.

따라서 User00님의 접근 방식은 특정 상황에서 더 나은 선택일 수 있으며 올바른 접근입니다.

continue를 사용하는 이유

0

79

2

정렬 가능 여부 판단하기

0

64

2

알고리즘 학습법 관련해서 질문드립니다.

0

86

1

코드 리뷰 부탁드립니다!

0

90

1

indexOf를 사용해서 풀어보았습니다 !!

0

68

1

저는 이런식으로 구현 해보았습니다 !!

0

64

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

100

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

63

1

영상 보기 전에 직접 풀어봤습니다.

0

74

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

135

2

정규표현식으로 처리해도 상관없나요 ?

0

120

2

3칸씩 건너뛸 수 있을 경우

0

125

2

강의에 대해 질문있습니다.

0

135

2

Object와 Set을 이용해 풀어봤습니다.

0

117

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

145

2

이렇게 풀어도 괜찮을까요?

0

138

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

130

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

133

1

투포인트알고리즘으로 풀어봤습니다.

0

142

0

코드 리뷰 부탁드립니다.

0

120

1

코드 맞게 작성한 거 아닌가여??

0

146

1