๋ฌธ์ ๋ด์ฉ
ํ์ด๐๐ปโ๏ธ
function solution(s, n) {
const result = [];
for (let string of s) {
let convertedString = string === " " ? " " : string.charCodeAt();
const notblank = !(convertedString === " ");
if (notblank && convertedString <= 90) {
convertedString += n;
if (convertedString > 90) {
convertedString -= 26;
}
}
if (notblank && convertedString >= 97) {
convertedString += n;
if (convertedString > 122) {
convertedString -= 26;
}
}
notblank
? result.push(String.fromCharCode(convertedString))
: result.push(" ");
}
return result.join("");
}
/*
(ํ์ด)
ํ
์คํธ ์ผ์ด์ค์์ ํ๋ฒ ๋งํ์๋๋ฐ ๋๋ฌธ์ Z๋ A๋ก ๋์ด๊ฐ์ผํ๋์ง ๋ชฐ๋๋ค.๐ฅฒ
for of ๋ฌธ์ผ๋ก ๋ฌธ์์ดs๋ฅผ ๋ฃ๊ณ ๋ณ์ string์ ์์คํค ์ฝ๋๋ก ๋ณํ. ๊ณต๋ฐฑ์ผ ๊ฒฝ์ฐ๋ ๊ณต๋ฐฑ์ ์ง
๋ฌธ์์ด์ด ๊ณต๋ฐฑ์ธ์ง ํ์ธํ๋ ์ฝ๋๋ ๋ฐ๋ณต๋๋ฏ๋ก ๋ณ์์ ๋ฃ์ด์ฃผ๊ณ
if๋ฌธ์ผ๋ก ๊ณต๋ฐฑ์ด ์๋๊ณ ๋ณํํ ์์คํค์ฝ๋ ๊ฐ์ด 90 ์ดํ์ผ ๊ฒฝ์ฐ์
๊ณต๋ฐฑ์ด ์๋๊ณ 97๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ก ๋๋์ด ์๋ฌธ์์ ๋๋ฌธ์๋ฅผ ๋ถ๋ฆฌํ ํ
๋ด๋ถ์์ ์์คํค์ฝ๋๊ฐ์ด z๋ฅผ ๋์ด๊ฐ๋ฉด -26 ์ผ๋ก a๋ถํฐ ์์ํ๊ฒ ํด์ค๋ค.
๋ง์ง๋ง์ผ๋ก ๊ณต๋ฐฑ์ผ ๊ฒฝ์ฐ์ ์๋๊ฒฝ์ฐ๋ฅผ ๋๋ ์ result ๋ฐฐ์ด์ pushํด์ฃผ๊ณ joinํด์ ์ ์ถ.
*/
- ์์คํค์ฝ๋ ํ.. ๋ฌธ์ ๋ ์๋ชป์ฝ๊ณ ์๊ฐ๋ณด๋ค ๊ณจ์น์ํ ๋ค.
- ๋๋ฌด ์ข์ ํผ๋๋ฐฑ์ ๋ฐ์๊ธฐ์ ์ ๋ฆฌ ํ์๐
ํผ๋๋ฐฑ ํ์ด๐จ๐ป
function solution(s, n) {
// map์ ์ด์ฉํด ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํจ์ผ๋ก์จ ๋ฌธ์ ์ ๊ทผ
const result = s.split("").map((string) => {
let convertedString = string.charCodeAt();
// " " ๊ณง๋ฐ๋ก ๋ฆฌํด
if (string === " ") return " ";
if (getIsUpperCase(convertedString)) {
convertedString += n;
convertedString = diminishAscii(convertedString, 90);
} else {
convertedString += n;
convertedString = diminishAscii(convertedString, 122);
}
return String.fromCharCode(convertedString);
});
return result.join("");
}
function diminishAscii(ascii, validRange) {
if (ascii > validRange) {
return ascii - 26;
}
return ascii;
}
function getIsUpperCase(ascii) {
if (ascii >= 65 && ascii < 91) return true;
return false;
}
- ๋์๋ฌธ์๋ฅผ ํ๋ณํ๋ getIsUpperCase ํจ์์ z๋ฅผ ๋๋ ์์คํค์ฝ๋๋ฅผ a๋ถํฐ ์์์ผ๋ก ๋๋ ค์ฃผ๋ diminishAscii ํจ์๋ฅผ ๋ง๋ค์ด์ ๋ณ๊ฒฝ ํ์ จ๋ค.
- ํจ์๋ฅผ ๋ถ๋ฆฌํ ์ด์ ๋ SOLID์์น์์ S ๋จ์ผ ์ฑ ์ ์์น ( ํจ์๋ ์ค์ง ํ๋์ ์ฑ ์์ ๊ฐ์ ธ์ผ ํ๋ค. )์ ์ ์ฉ.
- ๊ฒฐ๊ตญ ์ ์ถ ํจ์์ธ solution์ ๋ ๊น๋ํด์ก๊ณ ํ๊ฐ์ ํจ์๋ ๋จ ํ๊ฐ์ง์ ์ญํ ์ ๋งก๊ฒ๋๋ค๐
- SOLID์์น์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์์น์ด์ง๋ง js, ts์์๋ ์ ์ฉํด๋ณผ ์ ์๋ค! ์์๋ณด๊ธฐ ํ์ (๊ณต๋ถ ํ ๋งํฌ ์ถ๊ฐ์์ )
'์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด > Programmers-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฆฟ์ ๋ํ๊ธฐ (0) | 2022.09.18 |
---|---|
2016๋ (0) | 2022.09.18 |
๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ (0) | 2022.09.05 |
์์ฐ (0) | 2022.09.03 |
๋๋์ด ๋จ์ด์ง๋ ์ซ์ ๋ฐฐ์ด (0) | 2022.09.03 |