์•Œ๊ณ ๋ฆฌ์ฆ˜ & ๋ฌธ์ œํ’€์ด/Programmers-1

๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ

YunCow 2022. 8. 23. 22:27

๋ฌธ์ œ๋‚ด์šฉ

ํ’€์ด ๐Ÿ™‍โ™‚๏ธ

function solution(n) {
  for (i = 2; i < n; i++) {
    if (n % i === 1) return i;
  }
}

/*
(ํ’€์ด)
n์˜ ์ œํ•œ์‚ฌํ•ญ์€ 3~1,000,000์ด๋ฏ€๋กœ i๋ฅผ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ
for๋ฌธ์„ ๋Œ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ 1์ด๋˜๋Š”๊ฒฝ์šฐ๊ฐ€ ๋‚˜์˜ค๋ฉด ๋ฐ”๋กœ i๋ฅผ return ํ•˜๊ณ  ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค.
๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ž์—ฐ์ˆ˜ x ๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ• ์ˆ˜๋Š” ์—†์„๊นŒ ๊ณ ๋ฏผํ•ด ๋ดค๋Š”๋ฐ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค๐Ÿค”
*/
  • ํ‘ธ๋Š” ๋ฐฉ์‹ ์ž์ฒด๋Š” ๊ดœ์ฐฎ๊ฒŒ ์ž˜ ํ’€์—ˆ์ง€๋งŒ for๋ฌธ์˜ ๋ณ€์ˆ˜ i์— let,var ๋“ฑ ๋ณ€์ˆ˜ํ‚ค์›Œ๋“œ๋ฅผ ๋‹ฌ์•„์ค˜์•ผ ํ•˜๋Š” ์ด์œ ๋ฅผ ๋ชฐ๋ž๋Š”๋ฐ ์ด๋ฒˆ์— ์•Œ๊ฒŒ๋์œผ๋‹ˆ ๊ธฐ๋กํ•ด๋ณด์ž.

 

for๋ฌธ์—์„œ let์„ ์จ์ค˜์•ผ ํ•˜๋Š” ์ด์œ 

 

var : ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ, ์žฌํ• ๋‹น ๊ฐ€๋Šฅ ( ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ )

let : ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ, ์žฌํ• ๋‹น ๊ฐ€๋Šฅ ( ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ ) 

const : ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ, ์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ ( ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ )

 

์žฌ์„ ์–ธ

var varTest = 10;
var varTest = 20;
console.log(varTest); // 20

// let
let letTest = 10;
let letTest = 20;
console.log(letTest); // Uncaught SyntaxError: Identifier 'varTest' has already been declared
  • var์€ ์žฌ์„ ์–ธ ์‹œ ์ƒˆ๋กญ๊ฒŒ ์„ ์–ธํ•œ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
  • let์€ ์žฌ์„ ์–ธ ์‹œ ์—๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • const ๋„ let๊ณผ ๋™์ผ.
  • ๋ˆ„๊ตฐ๊ฐ€ varTest ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ๊ฐ€์ • ํ–ˆ์„๋•Œ, ๊ทธ ๋งŽ์€ ์ฝ”๋“œ ์ค‘ ๋ณธ์ธ์€ ๋ชจ๋ฅด๊ณ  varTest ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋กœ์ธํ•ด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฐ’์ด ๋‚˜์˜ค์ง€์•Š๊ณ  ์–ด๋– ํ•œ ์—๋Ÿฌ๋ฅผ ๋งŒ๋“ค์ง€ ์•Œ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ var์˜ ์‚ฌ์šฉ์€ ์ž์ œํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

์žฌํ• ๋‹น

var varTest = 10;
varTest = 20;
console.log(varTest); // 20;

let letTest = 10;
letTest = 20;
console.log(letTest); // 20;

const constTest = 10;
constTest = 20;
console.log(constTest); // Uncaught TypeError: Assignment to constant variable.
  • const ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋‘ ์žฌํ• ๋‹น ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ณธ๋ก ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ, ์™œ let์„ ์จ์ค˜์•ผ ํ• ๊นŒ?

for (i = 0; i < 5; i++) {
  console.log(i); // 0,1,2,3,4
}
console.log(i); // 5


for (let i = 0; i < 5; i++) {
  console.log(i); // 0,1,2,3,4
}
console.log(i); // i is not defined
  • i ์— let ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉด i๋Š” ์›ํ•˜์ง€ ์•Š์€ ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ๋˜์–ด for๋ฌธ ๋ฐ”๊นฅ์—์„œ๋„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ณ  ๋งˆ์ง€๋ง‰ i++ ์„ ์‹คํ–‰ํ•œ i = 5 ๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.
  • let ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋กœ ์ธํ•ด ๋ฐ–์—์„œ๋Š” ์ฐธ์กฐํ•  ์ˆ˜ ์—†๊ฒŒ๋˜๋‹ˆ for๋ฌธ ์•ˆ์—์„œ ๋ชจ๋“ ๊ฒŒ ๋๋‚ฉ๋‹ˆ๋‹ค.
  • ์ด ์ฐจ์ด์ ์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฐ’ i๊ฐ€ ์•„๋‹Œ ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ i๋กœ ์ธํ•ด ํ˜ผ๋ž€์ด ์˜ฌ ์ˆ˜์žˆ์œผ๋‹ˆ ๊ผญ! let ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ž. ( ๋” ์ž์„ธํ•œ ๋‚ด์šฉ ์ฐธ๊ณ  )