ν‹°μŠ€ν† λ¦¬ λ·°

문제

μΉ΄μΉ΄μ˜€μ— μž…μ‚¬ν•œ μ‹ μž… 개발자 λ„€μ˜€λŠ” "μΉ΄μΉ΄μ˜€κ³„μ •κ°œλ°œνŒ€"에 λ°°μΉ˜λ˜μ–΄, 카카였 μ„œλΉ„μŠ€μ— κ°€μž…ν•˜λŠ” μœ μ €λ“€μ˜ 아이디λ₯Ό μƒμ„±ν•˜λŠ” 업무λ₯Ό λ‹΄λ‹Ήν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. "λ„€μ˜€"μ—κ²Œ 주어진 첫 μ—…λ¬΄λŠ” μƒˆλ‘œ κ°€μž…ν•˜λŠ” μœ μ €λ“€μ΄ 카카였 아이디 κ·œμΉ™μ— λ§žμ§€ μ•ŠλŠ” 아이디λ₯Ό μž…λ ₯ν–ˆμ„ λ•Œ, μž…λ ₯된 아이디와 μœ μ‚¬ν•˜λ©΄μ„œ κ·œμΉ™μ— λ§žλŠ” 아이디λ₯Ό μΆ”μ²œν•΄μ£ΌλŠ” ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
λ‹€μŒμ€ 카카였 μ•„μ΄λ””μ˜ κ·œμΉ™μž…λ‹ˆλ‹€.

  • μ•„μ΄λ””μ˜ κΈΈμ΄λŠ” 3자 이상 15자 μ΄ν•˜μ—¬μ•Ό ν•©λ‹ˆλ‹€.
  • μ•„μ΄λ””λŠ” μ•ŒνŒŒλ²³ μ†Œλ¬Έμž, 숫자, λΉΌκΈ°(-), 밑쀄(_), λ§ˆμΉ¨ν‘œ(.) 문자만 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 단, λ§ˆμΉ¨ν‘œ(.)λŠ” 처음과 끝에 μ‚¬μš©ν•  수 μ—†μœΌλ©° λ˜ν•œ μ—°μ†μœΌλ‘œ μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

"λ„€μ˜€"λŠ” λ‹€μŒκ³Ό 같이 7λ‹¨κ³„μ˜ 순차적인 처리 과정을 톡해 μ‹ κ·œ μœ μ €κ°€ μž…λ ₯ν•œ 아이디가 카카였 아이디 κ·œμΉ™μ— λ§žλŠ” 지 κ²€μ‚¬ν•˜κ³  κ·œμΉ™μ— λ§žμ§€ μ•Šμ€ 경우 κ·œμΉ™μ— λ§žλŠ” μƒˆλ‘œμš΄ 아이디λ₯Ό μΆ”μ²œν•΄ μ£Όλ €κ³  ν•©λ‹ˆλ‹€.
μ‹ κ·œ μœ μ €κ°€ μž…λ ₯ν•œ 아이디가 new_id λΌκ³  ν•œλ‹€λ©΄,

1단계 new_id의 λͺ¨λ“  λŒ€λ¬Έμžλ₯Ό λŒ€μ‘λ˜λŠ” μ†Œλ¬Έμžλ‘œ μΉ˜ν™˜ν•©λ‹ˆλ‹€. 2단계 new_idμ—μ„œ μ•ŒνŒŒλ²³ μ†Œλ¬Έμž, 숫자, λΉΌκΈ°(-), 밑쀄(_), λ§ˆμΉ¨ν‘œ(.)λ₯Ό μ œμ™Έν•œ λͺ¨λ“  문자λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€. 3단계 new_idμ—μ„œ λ§ˆμΉ¨ν‘œ(.)κ°€ 2번 이상 μ—°μ†λœ 뢀뢄을 ν•˜λ‚˜μ˜ λ§ˆμΉ¨ν‘œ(.)둜 μΉ˜ν™˜ν•©λ‹ˆλ‹€. 4단계 new_idμ—μ„œ λ§ˆμΉ¨ν‘œ(.)κ°€ μ²˜μŒμ΄λ‚˜ 끝에 μœ„μΉ˜ν•œλ‹€λ©΄ μ œκ±°ν•©λ‹ˆλ‹€. 5단계 new_idκ°€ 빈 λ¬Έμžμ—΄μ΄λΌλ©΄, new_id에 "a"λ₯Ό λŒ€μž…ν•©λ‹ˆλ‹€. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ λ¬Έμžλ“€μ„ λͺ¨λ‘ μ œκ±°ν•©λ‹ˆλ‹€. λ§Œμ•½ 제거 ν›„ λ§ˆμΉ¨ν‘œ(.)κ°€ new_id의 끝에 μœ„μΉ˜ν•œλ‹€λ©΄ 끝에 μœ„μΉ˜ν•œ λ§ˆμΉ¨ν‘œ(.) 문자λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€. 7단계 new_id의 길이가 2자 μ΄ν•˜λΌλ©΄, new_id의 λ§ˆμ§€λ§‰ 문자λ₯Ό new_id의 길이가 3이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•΄μ„œ 끝에 λΆ™μž…λ‹ˆλ‹€.


예λ₯Ό λ“€μ–΄, new_id 값이 "...!@BaT#*..y.abcdefghijklm" 라면, μœ„ 7단계λ₯Ό 거치고 λ‚˜λ©΄ new_idλŠ” μ•„λž˜μ™€ 같이 λ³€κ²½λ©λ‹ˆλ‹€.

1단계 λŒ€λ¬Έμž 'B'와 'T'κ°€ μ†Œλ¬Έμž 'b'와 't'둜 λ°”λ€Œμ—ˆμŠ΅λ‹ˆλ‹€.
"...!@BaT#*..y.abcdefghijklm"  "...!@bat#*..y.abcdefghijklm"

2단계 '!', '@', '#', '*' λ¬Έμžκ°€ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
"...!@bat#*..y.abcdefghijklm"  "...bat..y.abcdefghijklm"

3단계 '...'와 '..' κ°€ '.'둜 λ°”λ€Œμ—ˆμŠ΅λ‹ˆλ‹€.
"...bat..y.abcdefghijklm"  ".bat.y.abcdefghijklm"

4단계 μ•„μ΄λ””μ˜ μ²˜μŒμ— μœ„μΉ˜ν•œ '.'κ°€ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
".bat.y.abcdefghijklm"  "bat.y.abcdefghijklm"

5단계 아이디가 빈 λ¬Έμžμ—΄μ΄ μ•„λ‹ˆλ―€λ‘œ λ³€ν™”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
"bat.y.abcdefghijklm"  "bat.y.abcdefghijklm"

6단계 μ•„μ΄λ””μ˜ 길이가 16자 μ΄μƒμ΄λ―€λ‘œ, 처음 15자λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ λ¬Έμžλ“€μ΄ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
"bat.y.abcdefghijklm"  "bat.y.abcdefghi"

7단계 μ•„μ΄λ””μ˜ 길이가 2자 μ΄ν•˜κ°€ μ•„λ‹ˆλ―€λ‘œ λ³€ν™”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
"bat.y.abcdefghi"  "bat.y.abcdefghi"

λ”°λΌμ„œ μ‹ κ·œ μœ μ €κ°€ μž…λ ₯ν•œ new_idκ°€ "...!@BaT#*..y.abcdefghijklm"일 λ•Œ, λ„€μ˜€μ˜ ν”„λ‘œκ·Έλž¨μ΄ μΆ”μ²œν•˜λŠ” μƒˆλ‘œμš΄ μ•„μ΄λ””λŠ” "bat.y.abcdefghi" μž…λ‹ˆλ‹€.


[문제]

μ‹ κ·œ μœ μ €κ°€ μž…λ ₯ν•œ 아이디λ₯Ό λ‚˜νƒ€λ‚΄λŠ” new_idκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, "λ„€μ˜€"κ°€ μ„€κ³„ν•œ 7λ‹¨κ³„μ˜ 처리 과정을 거친 ν›„μ˜ μΆ”μ²œ 아이디λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”.

[μ œν•œμ‚¬ν•­]

new_idλŠ” 길이 1 이상 1,000 μ΄ν•˜μΈ λ¬Έμžμ—΄μž…λ‹ˆλ‹€.
new_idλŠ” μ•ŒνŒŒλ²³ λŒ€λ¬Έμž, μ•ŒνŒŒλ²³ μ†Œλ¬Έμž, 숫자, 특수문자둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
new_id에 λ‚˜νƒ€λ‚  수 μžˆλŠ” νŠΉμˆ˜λ¬ΈμžλŠ” -_.~!@#$%^&*()=+[{]}:?,<>/ λ‘œ ν•œμ •λ©λ‹ˆλ‹€.


[μž…μΆœλ ₯ 예]

nonew_idresult

예1 "...!@BaT#*..y.abcdefghijklm" "bat.y.abcdefghi"
예2 "z-+.^." "z--"
예3 "=.=" "aaa"
예4 "123_.def" "123_.def"
예5 "abcdefghijklmn.p" "abcdefghijklmn"

μž…μΆœλ ₯ μ˜ˆμ— λŒ€ν•œ μ„€λͺ…


μž…μΆœλ ₯ 예 #1
문제의 μ˜ˆμ‹œμ™€ κ°™μŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2
7단계λ₯Ό κ±°μΉ˜λŠ” λ™μ•ˆ new_idκ°€ λ³€ν™”ν•˜λŠ” 과정은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

1단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
2단계 "z-+.^."  "z-.."
3단계 "z-.."  "z-."
4단계 "z-."  "z-"
5단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
6단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
7단계 "z-"  "z--"

μž…μΆœλ ₯ 예 #3
7단계λ₯Ό κ±°μΉ˜λŠ” λ™μ•ˆ new_idκ°€ λ³€ν™”ν•˜λŠ” 과정은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

1단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
2단계 "=.="  "."
3단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
4단계 "."  "" (new_idκ°€ 빈 λ¬Έμžμ—΄μ΄ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.)
5단계 ""  "a"
6단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
7단계 "a"  "aaa"

μž…μΆœλ ₯ 예 #4
1λ‹¨κ³„μ—μ„œ 7λ‹¨κ³„κΉŒμ§€ κ±°μΉ˜λŠ” λ™μ•ˆ new_id("123_.def")λŠ” λ³€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 즉, new_idκ°€ μ²˜μŒλΆ€ν„° 카카였의 아이디 κ·œμΉ™μ— λ§žμŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #5
1단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
2단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
3단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
4단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
5단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.
6단계 "abcdefghijklmn.p"  "abcdefghijklmn."  "abcdefghijklmn"
7단계 λ³€ν™” μ—†μŠ΅λ‹ˆλ‹€.

 

λ¬Έμ œν’€μ΄

 

  • 각 λ‹¨κ³„μ˜ 쑰건을 λ§Œμ‘±μ‹œν‚€λŠ” String λ©”μ„œλ“œλ“€κ³Ό μ •κ·œ ν‘œν˜„μ‹ μž‘μ„±ν•˜λŠ” 것이 ν•΄λ‹Ή λ¬Έμ œμ—μ„œ μ€‘μš”
  • λ©”μ„œλ“œ 체이닝을 ν™œμš©ν•˜μ—¬ μ½”λ“œλ₯Ό μ’€ 더 λͺ…ν™•ν•˜κ²Œ μž‘μ„±ν•˜λ„λ‘ ν•˜μ˜€μŒ

μ •κ·œ ν‘œν˜„μ‹(regular expression)

  • μΌμ •ν•œ νŒ¨ν„΄μ„ 가진 λ¬Έμžμ—΄μ˜ 집합을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ν˜•μ‹ μ–Έμ–΄(formal language)
  • μ •κ·œ ν‘œν˜„μ‹μ€ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 고유 문법이 μ•„λ‹ˆλ©°, λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° 언어와 μ½”λ“œ 에디터에 λ‚΄μž₯
  • νŒ¨ν„΄ 맀칭 κΈ°λŠ₯: νŠΉμ • νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄μ„ 검색 및 μΆ”μΆœ λ˜λŠ” μΉ˜ν™˜ν•  수 μžˆλŠ” κΈ°λŠ₯

μ •κ·œ ν‘œν˜„μ‹ λ¦¬ν„°λŸ΄

ν”Œλž˜κ·Έ

  • ν”Œλž˜κ·ΈλŠ” μ˜΅μ…˜μ΄λ―€λ‘œ μ„ νƒμ μœΌλ‘œ μ‚¬μš© κ°€λŠ₯
  • μˆœμ„œμ™€ 상관없이 ν•˜λ‚˜ μ΄μƒμ˜ ν”Œλž˜κ·Έλ₯Ό λ™μ‹œμ— μ„€μ • κ°€λŠ₯
ν”Œλž˜κ·Έ 의미 μ„€λͺ…
i Ignore case λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λ³„ν•˜μ§€ μ•Šκ³  νŒ¨ν„΄ 검색
g Global νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ” λͺ¨λ“  λ¬Έμžμ—΄μ„ μ „μ—­ 검색
m Multi line λ¬Έμžμ—΄μ˜ 행이 λ°”λ€Œμ–΄λ„ νŒ¨ν„΄ 검색 진행

 

νŒ¨ν„΄

  • λ¬Έμžμ—΄μ˜ μΌμ •ν•œ κ·œμΉ™μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
  • νŒ¨ν„΄μ€ /둜 μ—΄κ³  λ‹«μœΌλ©° λ¬Έμžμ—΄μ˜ λ”°μ˜΄ν‘œλŠ” μƒλž΅(λ”°μ˜΄ν‘œκΉŒμ§€λ„ νŒ¨ν„΄μ— ν¬ν•¨λ˜μ–΄ 검색됨)
  • νŠΉλ³„ν•œ 의미λ₯Ό κ°€μ§€λŠ” λ©”νƒ€λ¬Έμž(meta character) λ˜λŠ” 기호둜 ν‘œν˜„ κ°€λŠ₯
νŒ¨ν„΄ 의미 μ„€λͺ…
. μž„μ˜μ˜ λ¬Έμžμ—΄ 검색 은 μž„μ˜μ˜ 문자 ν•œ 개λ₯Ό μ˜λ―Έν•˜λ©° 문자의 λ‚΄μš©μ€ 무엇이든 상관 μ—†μŒ
{m, n} 반볡 검색 μ΅œμ†Œ m번, μ΅œλŒ€ n번 λ°˜λ³΅λ˜λŠ” λ¬Έμžμ—΄μ„ μ˜λ―Έν•˜λ©° 콀마 뒀에 곡백 μ‹œ 였λ₯˜ λ°œμƒ
{n,} 반볡 검색 μ΅œμ†Œ n번 이상 λ°˜λ³΅λ˜λŠ” λ¬Έμžμ—΄μ„ 의미
+ === {1,} 반볡 검색 μ΅œμ†Œ ν•œλ²ˆ 이상 λ°˜λ³΅λ˜λŠ” λ¬Έμžμ—΄μ„ 의미
| OR 검색 or의 의미λ₯Ό μ§€λ‹˜
[] or둜 λ™μž‘ /A+|B+/g === /[AB]+/g
- λ²”μœ„ 지정 /[A-Z]+/g
\d λ²”μœ„ 지정 \dλŠ” 숫자λ₯Ό μ˜λ―Έν•˜λ©° [0-9]와 κ°™μŒ
\D λ²”μœ„ 지정 \d와 λ°˜λŒ€λ‘œ λ™μž‘ν•˜λ©°  숫자 μ•„λ‹Œ 문자λ₯Ό 의미
\w λ²”μœ„ 지정 μ•ŒνŒŒλ²³, 숫자, μ–Έλ”μŠ€μ½”μ–΄λ₯Ό μ˜λ―Έν•˜κ³ 
[A-Za-z0-9_]와 동일
\W λ²”μœ„ 지정 \w와 λ°˜λŒ€λ‘œ λ™μž‘ν•˜λ©° μ•ŒνŒŒλ²³, 숫자, μ–Έλ”μŠ€μ½”μ–΄κ°€ μ•„λ‹Œ 문자λ₯Ό 의미
/ 검색 λ‹€μŒμ— μ˜€λŠ” 문자λ₯Ό 특수 문자, λ¦¬ν„°λŸ΄, μ—­μ°Έμ‘° λ˜λŠ” 8μ§„μˆ˜ μ΄μŠ€μΌ€μ΄ν”„λ‘œ ν‘œμ‹œ
? λ²”μœ„ 지정 μ•žμ˜ λ¬Έμžλ‚˜ 뢀뢄식을 0κ°œλ‚˜ 1개 탐색
^ λΆ€μ •_[...] μ•ˆμ—μ„œ not의 의미λ₯Ό μ§€λ‹˜
^ μ‹œμž‘ μœ„μΉ˜λ‘œ 검색_[...] λ°–μ—μ„œ λ¬Έμžμ—΄μ˜ μ‹œμž‘μ„ 의미
$ λ§ˆμ§€λ§‰ μœ„μΉ˜λ‘œ 검색 λ¬Έμžμ—΄μ˜ λ§ˆμ§€λ§‰μ„ 의미

 

μ½”λ“œ

function solution(new_id) {
    var answer = '';
    
    answer = new_id.toLowerCase() 
        .replace(/[^a-z0-9-_.]/gi, '') 
        .replace(/[.]{2}/g, '.')
        .replace(/^\.|\.$/g, '')

        
    if(answer.length === '') answer = "a";
    if(answer.length > 15) answer = answer.substring(0, 15).replace(/[.]$/g, '');

    while(answer.length < 3) {
        answer+=answer[answer.length - 1];
    }
    return answer;
}

 

λ‹€λ₯Έ μ‚¬λžŒ 풀이

function solution(new_id) {
    const answer = new_id
        .toLowerCase() // 1
        .replace(/[^\w-_.]/g, '') // 2
        .replace(/\.+/g, '.') // 3
        .replace(/^\.|\.$/g, '') // 4
        .replace(/^$/, 'a') // 5
        .slice(0, 15).replace(/\.$/, ''); // 6
    const len = answer.length;
    return len > 2 ? answer : answer + answer.charAt(len - 1).repeat(3 - len);

λ¬Έμžμ—΄μ΄ 15λ₯Ό λ„˜μ–΄μ„œκ²Œ 되면 κ·Έ μ΄ν›„μ˜ λ¬Έμžλ“€μ„ μ œκ±°ν•˜λŠ” 6λ‹¨κ³„μ—μ„œ substring λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ˜€μ§€λ§Œ 이 뢄은 이 λ˜ν•œ μ •κ·œ ν‘œν˜„μ‹ νŒ¨ν„΄ .을 μ‚¬μš©ν•˜μ—¬ λ²”μœ„λ₯Ό λ„˜μ–΄μ„œλŠ” μž„μ˜μ˜ λ¬Έμžλ“€μ„ λͺ¨λ‘ 곡백으둜 μ²˜λ¦¬ν•˜μ˜€λ‹€.

 

λ˜ν•œ λ¬Έμžμ—΄μ΄ 2μ΄ν•˜μΌ κ²½μš°μ— String.prototype.charAt()을 μ‚¬μš©ν•˜μ—¬ λ§ˆμ§€λ§‰ 인덱슀의 λ¬Έμžμ—΄μ„ κ°€μ Έμ˜¨ λ’€ 3이 λ λ•ŒκΉŒμ§€ ν•„μš”ν•œ 횟수λ₯Ό 인자둜 λ„˜κ²¨ 이 횟수만큼 λ°˜λ³΅ν•˜λŠ” String.prototype.repeat()을 μ‚¬μš©ν•˜μ—¬ 뒀에 문자λ₯Ό μΆ”κ°€ν•˜μ˜€λ‹€.

 

charAt() ν•¨μˆ˜λŠ” λ¬Έμžμ—΄μ—μ„œ νŠΉμ • μΈλ±μŠ€μ— μœ„μΉ˜ν•˜λŠ”  μœ λ‹ˆμ½”λ“œ λ‹¨μΌλ¬Έμžλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 
repeat() λ©”μ„œλ“œλŠ” λ¬Έμžμ—΄μ„ 주어진 횟수만큼 λ°˜λ³΅ν•΄ 뢙인 μƒˆλ‘œμš΄ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

const solution = (new_id) => {
    const id = new_id
        .toLowerCase()
        .replace(/[^\w\d-_.]/g, '')
        .replace(/\.{2,}/g, '.')
        .replace(/^\.|\.$/g, '')
        .padEnd(1, 'a')
        .slice(0, 15)
        .replace(/^\.|\.$/g, '')        
    return id.padEnd(3, id[id.length-1])
}

이 뢄은 ν•œλ²ˆλ„ 본적도 μ—†λ˜ padEnd() λΌλŠ” λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή 문제λ₯Ό ν’€μ΄ν•˜μ˜€λŠ”λ° μ°Ύμ•„λ³΄λ‹ˆ 이후에 μœ μš©ν•˜κ²Œ 쓰일 수 μžˆμ„ 것 κ°™μ•„ 같이 ν¬μŠ€νŒ… ν•΄λ‘”λ‹€.

padEnd()λ©”μ„œλ“œλŠ” ν˜„μž¬ λ¬Έμžμ—΄μ— λ‹€λ₯Έ λ¬Έμžμ—΄μ„ μ±„μ›Œ, 주어진 길이λ₯Ό λ§Œμ‘±ν•˜λŠ” μƒˆλ‘œμš΄ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. μ±„μ›Œλ„£κΈ°λŠ” λŒ€μƒ λ¬Έμžμ—΄μ˜ 끝(우츑)λΆ€ν„° μ μš©λ©λ‹ˆλ‹€.

 

κ΄€λ ¨ 문제

https://choi95.tistory.com/42?category=854389 

 

μœ νš¨ν•œ νŒ°λ¦°λ“œλ‘¬

문제 μ•žμ—μ„œ 읽을 λ•Œλ‚˜ λ’€μ—μ„œ 읽을 λ•Œλ‚˜ 같은 λ¬Έμžμ—΄μ„ νŒ°λ¦°λ“œλ‘¬μ΄λΌκ³  ν•œλ‹€. λ¬Έμžμ—΄μ΄ μž…λ ₯되면 ν•΄λ‹Ή λ¬Έμžμ—΄μ΄ νŒ°λ¦°λ“œλ‘¬μ΄λ©΄ "YES", μ•„λ‹ˆλ©΄ "NO"λ₯Ό 좜λ ₯ν•˜κ³ μž ν•œλ‹€. 단, νšŒλ¬Έμ„ 검사할 λ•Œ μ•ŒνŒŒ

choi95.tistory.com

 

https://choi95.tistory.com/31?category=854389 

 

μ€‘λ³΅λ‹¨μ–΄μ œκ±°

N개의 λ¬Έμžμ—΄μ΄ μž…λ ₯되면 μ€‘λ³΅λœ λ¬Έμžμ—΄μ€ μ œκ±°ν•˜κ³  좜λ ₯ν•˜κ³ μž ν•œλ‹€. (좜λ ₯ν•˜λŠ” λ¬Έμžμ—΄μ€ μ›λž˜μ˜ μž…λ ₯μˆœμ„œλ₯Ό μœ μ§€ν•œλ‹€) μš°μ„ , 주어진 λ¬Έμžμ—΄μ„ λ°°μ—΄λ‘œ 전달 λ°›κΈ° μœ„ν•΄ Rest νŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•˜μ˜€

choi95.tistory.com

 

https://choi95.tistory.com/26?category=854389 

 

λŒ€μ†Œλ¬Έμž λ³€ν™˜

 λŒ€λ¬Έμžμ™€ μ†Œλ¬Έμžκ°€ 같이 μ‘΄μž¬ν•˜λŠ” λ¬Έμžμ—΄μ„ μž…λ ₯λ°›μ•„ λŒ€λ¬ΈμžλŠ” μ†Œλ¬Έμžλ‘œ, μ†Œλ¬ΈμžλŠ” λŒ€λ¬Έμžλ‘œ λ³€ν™˜ν•˜μ—¬ 좜λ ₯ν•˜κ³ μž ν•œλ‹€.  λ°˜λ³΅λ¬Έμ„ 톡해 각 λ¬Έμžκ°€ λŒ€λ¬ΈμžμΈμ§€ μ†Œλ¬ΈμžμΈμ§€ 식별 및 μˆœνšŒν•˜μ—¬

choi95.tistory.com

λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
TAG
more
Β«   2025/01   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
κΈ€ 보관함