8์ผ์ฐจ : pair์™€ ๊ฐ™์ด ์ฝ”ํ”Œ๋ฆฟ ๋ฌธ์ œ ํ’€๊ธฐ ์ง„ํ–‰

  1. ์กฐ๊ฑด๋ฌธ
  2. ๋ฐ˜๋ณต๋ฌธ

์–ด๋ ค์› ๊ฑฐ๋‚˜ ํž˜๋“ค์—ˆ๋˜ ๋ฌธ์ œ


์กฐ๊ฑด๋ฌธ

๋ฌธ์ œ

์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ๋“ฑ๊ธ‰์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ

์ธ์ž 1 : score
number ํƒ€์ž…์˜ ์ •์ˆ˜

์ถœ๋ ฅ

string ํƒ€์ž…์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ๋“ฑ๊ธ‰์˜ ์ตœ์ € ์ ์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ('F'์˜ ๊ฒฝ์šฐ ์ตœ๋Œ€ ์ ์ˆ˜๋ฅผ ํ‘œ๊ธฐ)
90 ์ด์ƒ --> 'A'
80 ์ด์ƒ --> 'B'
70 ์ด์ƒ --> 'C'
60 ์ด์ƒ --> 'D'
60 ๋ฏธ๋งŒ --> 'F'

์ฃผ์˜ ์‚ฌํ•ญ

๋งŒ์•ฝ ์ฃผ์–ด์ง„ ์ ์ˆ˜๊ฐ€ 100์„ ์ดˆ๊ณผํ•˜๊ฑฐ๋‚˜ 0 ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ, ๋ฌธ์ž์—ด 'INVALID SCORE'๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ๋“ฑ๊ธ‰์˜ ์ตœ๊ณ  ์ ์ˆ˜๋ณด๋‹ค 7์  ์ดํ•˜์ธ ๊ฒฝ์šฐ, ๋“ฑ๊ธ‰๊ณผ ํ•จ๊ป˜ '-'๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (๋‹จ, 93์ ์˜ ๊ฒฝ์šฐ์—๋Š” A๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
๊ฐ ๋“ฑ๊ธ‰์˜ ์ตœ์ € ์ ์ˆ˜๋ณด๋‹ค 8์  ์ด์ƒ์ธ ๊ฒฝ์šฐ, ๋“ฑ๊ธ‰๊ณผ ํ•จ๊ป˜ '+'๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
F+ ์™€ F- ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

1
let output = convertScoreToGradeWithPlusAndMinus(91);
2
console.log(output); // --> 'A-'

code

ํ•ด์„

  • ๊ตฌ๊ธ€๋ง์„ ํ•˜์—ฌ ์ฐธ๊ณ ํ•œ code ์ž…๋‹ˆ๋‹ค.

  • convertScoreToGradeWithPlusAndMinus ํ•จ์ˆ˜ :

  1. ๋ณ€์ˆ˜ ์ง€์ •
  • unitDigit: score 10์œผ๋กœ ๋‚˜๋ˆ ์„œ ์ˆซ์ž์ค‘์— 1์˜ ์ž๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค ๋ณ€์ˆ˜
  • grade: ๊ฐ๊ฐ์˜ ์กฐ๊ฑด์— ๋งž๊ฒŒ ํ•™์ ์„ ๋„ฃ์–ด์ค„ ๋ณ€์ˆ˜

    let unitDigit = score % 10; // 1์˜์ž๋ฆฌ

  1. ์ฃผ์˜ ์‚ฌํ•ญ์— ์žˆ๋Š” ์กฐ๊ฑด์„ ๋งจ ์ฒ˜์Œ์— ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋ฐ‘์— ์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค์ด ๋ถˆ ํ•„์š”ํ•˜๊ฒŒ ๋Œ์•„๊ฐ€์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

    ๋งŒ์•ฝ ์ฃผ์–ด์ง„ ์ ์ˆ˜๊ฐ€ 100์„ ์ดˆ๊ณผํ•˜๊ฑฐ๋‚˜ 0 ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ, ๋ฌธ์ž์—ด 'INVALID SCORE'๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    if(score > 100 || score < 0) return "INVALID SCORE";

  2. ์ถœ๋ ฅ์— ์žˆ๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด์‹์„ ์ž‘์„ฑํ•œ๋‹ค.

    if(score >= 90) grade = 'A'
    else if(score >= 80) grade = 'B';
    else if(score >= 70) grade = 'C';
    else if(score >= 60) grade = 'D';
    else if(score >= 0) return 'F'; // F์ผ ๊ฒฝ์šฐ ๋ฐ”๋กœ ๋ฆฌํ„ด

  3. ์œ„์˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ฑฐ๋‚˜ ์ถฉ์กฑํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด return ๊ฐ’์„
    ํ•™์ ์ด ๋„ฃ์–ด์ ธ์žˆ๋Š” ๋ณ€์ˆ˜์™€ signMaker ํ•จ์ˆ˜์— ์ธ์ž๋ฅผ ๋ณด๋‚ด์„œ ๊ฐ ์กฐ๊ฑด์— ๋งž๋Š” ๋ถ€ํ˜ธ๋ฅผ ๋ฐ›์€ ๊ฐ’์„ string ์œผ๋กœ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.

    return grade + signMaker(unitDigit); // ๋“ฑ๊ธ‰ + ๋ถ€ํ˜ธ

  • signMaker ํ•จ์ˆ˜ :
  1. convertScoreToGradeWithPlusAndMinus ํ•จ์ˆ˜์—์„œ
    unitDigit ๋ณ€์ˆ˜๋ฅผ ๋ณด๋‚ด์„œ ์ฃผ์˜์‚ฌํ•ญ์— ์ ์–ด๋†“์€ ์กฐ๊ฑด์— ๋งž๊ฒŒ
    1์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋ณด๊ณ  ๊ฐ๊ฐ์— ๋งž๋Š” ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค.

๊ฐ ๋“ฑ๊ธ‰์˜ ์ตœ๊ณ  ์ ์ˆ˜๋ณด๋‹ค 7์  ์ดํ•˜์ธ ๊ฒฝ์šฐ, ๋“ฑ๊ธ‰๊ณผ ํ•จ๊ป˜ '-'๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (๋‹จ, 93์ ์˜ ๊ฒฝ์šฐ์—๋Š” A๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
๊ฐ ๋“ฑ๊ธ‰์˜ ์ตœ์ € ์ ์ˆ˜๋ณด๋‹ค 8์  ์ด์ƒ์ธ ๊ฒฝ์šฐ, ๋“ฑ๊ธ‰๊ณผ ํ•จ๊ป˜ '+'๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
F+ ์™€ F- ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

function signMaker(unitDigit){
if(unitDigit >= 8 && unitDigit <= 9) return '+';
else if(unitDigit >= 0 && unitDigit <= 2) return '-';
else return '';
}

profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ณต๋ถ€์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€