Coder Social home page Coder Social logo

algorithm's Introduction

πŸ‘¨πŸ»β€πŸ’» Yohan Kim

였직 μΌμ—λ§Œ 집쀑할 수 μžˆλŠ” νšŒμ‚¬λ₯Ό μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€.

μŠ€ν”„λ¦°νŠΈ 기간을 μ΅œλŒ€ν•œ 짧게 ν•˜λŠ” 것을 μ’‹μ•„ν•˜λ©° 데이터 기반으둜 일을 ν•˜λ € λ…Έλ ₯ν•©λ‹ˆλ‹€.
회볡 탄λ ₯성이 κ°•ν•˜κ³  κ°€μ„€ 검증 기반의 디버깅 λŠ₯λ ₯이 μš°μˆ˜ν•©λ‹ˆλ‹€.
μ΄μƒν•œ 일듀을 많이 ν•΄μ„œ 버그λ₯Ό 많이 λ§Œλ‚˜ λͺ½ν‚€ νŒ¨μΉ­μ„ μž˜ν•©λ‹ˆλ‹€.
배포λ₯Ό 자주 ν•˜λŠ” λ¬Έν™”λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ λ…Έλ ₯ν•©λ‹ˆλ‹€.

πŸ“Œ Work Experience

λ‹Ήκ·Όλ§ˆμΌ“ (2023.04 ~ ν˜„μž¬)

μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄

λ€Όμ΄λ“œ (2020.11 ~ 2022.11)

μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄

  • Schema based development
    • Protobuf 기반으둜 webview와 native, server μΈν„°νŽ˜μ΄μŠ€ μž‘μ„±
    • μž‘μ„±λœ schemaλ₯Ό 톡해 반볡적인 μ½”λ“œλ₯Ό κΈ°κ³„μ μœΌλ‘œ μžλ™ 생성
    • Open API Schemaλ₯Ό 기반으둜 rest apiλ“€μ˜ 반볡적인 μ½”λ“œλ₯Ό κΈ°κ³„μ μœΌλ‘œ μžλ™ 생성
    • μŠ€ν‚€λ§ˆ μ €μž₯μ†Œλ₯Ό λΆ„λ¦¬ν•˜μ—¬ PR을 톡해 api tech spec λ…Όμ˜
  • 컴파일 / λ²ˆλ“€λ§ 방식 연ꡬ 및 κ°œμ„ 
    • css-in-js둜 μΈν•œ babel μ˜μ‘΄μ„±μ„ μ œκ±°ν•˜κ³  swc둜 컴파일러 ꡐ체
    • esm, cjs 두 λͺ¨λ“ˆλ§μ„ μ§€μ›ν•˜κΈ° μœ„ν•œ μž‘μ—… 진행
    • λͺ¨λ…Έλ ˆν¬μ—μ„œ 각 νŒ¨ν‚€μ§€λ“€μ˜ hmr을 지원
  • Trunk Based Development κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ 일듀을 진행
    • yarn2 + ultra-runnerλ₯Ό μ‚¬μš©ν•œ 초기 λͺ¨λ…Έλ ˆν¬ μ…‹μ—…
    • pnpm + turboλ₯Ό ν†΅ν•œ λͺ¨λ…Έλ ˆν¬ κ°œμ„ 
    • PR 검증과 ν”„λ‘œλ•νŠΈ 배포λ₯Ό μœ„ν•œ CI&CD μž‘μ„±
    • λΉŒλ“œ 캐싱을 톡해 배포 속도 λŒ€ν­ κ°œμ„ 
    • λͺ¨λ…Έλ ˆν¬λ‘œ μΈν•œ 각쒅 λΉŒλ“œ 이슈 ν•΄κ²°
    • 배포 ν”„λ‘œμ„ΈμŠ€ μ •μ˜
  • ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±
    • 컀버리지 80%λ₯Ό λͺ©ν‘œλ‘œ μœ λ‹›ν…ŒμŠ€νŠΈ μž‘μ„±
    • E2E ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ Cypressλ₯Ό μ…‹μ—…ν•˜κ³  QA Engineer μ˜¨λ³΄λ”© 진행
    • μŠ€ν‚€λ§ˆλ₯Ό 톡해 λͺ© 데이터 생성기, msw μ½”λ“œλ₯Ό μžλ™μœΌλ‘œ 생성해 μœ λ‹› ν…ŒμŠ€νŠΈ, μŠ€ν† λ¦¬λΆμ— ν™œμš©
  • 사내 λ°±μ˜€ν”ΌμŠ€ κ΅¬ν˜„
    • 곡용 μ»΄ν¬λ„ŒνŠΈ, 둜직, 컨버터 μž‘μ„± ν›„ 라이브러리둜 λ§μ•„μ„œ 배포
    • μ–΄λ“œλ―Ό λ°μ΄ν„°κ·Έλ¦¬λ“œ, 곡톡 ν•„ν„° κ΅¬ν˜„ μŠ€νŽ™ λ…Όμ˜
  • κΈ°μ‘΄ μ½”λ“œλ¦¬λ·° 방법을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ Graphiteλ₯Ό μ‚¬μš©ν•˜μ—¬ Stacked Changes 방법을 νŒ€λ‚΄ μ „νŒŒ
  • 3κ°œμ›” 정도 λ―Έκ΅­ μ§€μ‚¬μ—μ„œ μ˜μ–΄κΆŒ μ—”μ§€λ‹ˆμ–΄λ“€κ³Ό ν˜‘μ—…
  • μ†Œμˆ˜ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œμ νŠΈ κΈ°μ—¬ (Pbkit, Storybook λ“±)
  • λ‹€μˆ˜ μ›Ήλ·° ν”„λ‘œλ•νŠΈ MVP κ΅¬ν˜„ 및 μœ μ§€λ³΄μˆ˜
  • CLI 툴링 μž‘μ„± (μ½”λ“œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜, μ»΄ν¬λ„ŒνŠΈ μ½”λ“œ 생성 λ“±)

클래슀101 (2019.03 ~ 2020.06)

μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄

  • 컀머슀 μ…€

    • 퍼널 쀄이기 A/B ν…ŒμŠ€νŠΈλ₯Ό ν†΅ν•œ 결제 컨버전 400% κ°œμ„ 
    • 쿠폰 및 κ΅¬μ„±ν’ˆ 선택 UX κ°œμ„ 
    • 배솑 좔적 UX κ°œμ„ 
    • 컀머슀 도메인 λ ˆκ±°μ‹œ λŒ€μ‘
    • 각쒅 결제, 배솑 μ—λŸ¬ νŠΈλŸ¬λΈ” μŠˆνŒ…
  • ν”„λ‘ νŠΈμ—”λ“œ 챕터 DRI

    • Class101 CSR ν”„λ‘œμ νŠΈλ₯Ό SSR을 μ§€μ›ν•˜λ„λ‘ λ³€κ²½
    • SEO μ΅œμ ν™”λ₯Ό μœ„ν•΄ λ©”νƒ€νƒœκ·Έ, μ‚¬μ΄νŠΈλ§΅, μŠ€ν‚€λ§ˆ 등을 μ„ΈνŒ…
    • μ„œλ²„λ¦¬μŠ€ 이미지 μ••μΆ• μ„œλΉ„μŠ€μ—μ„œ λ‹€μ–‘ν•œ 포멧(webp, png, jpg)을 μ§€μ›ν•˜λ„λ‘ λ³€κ²½
    • 슀크린 크기에 λ”°λ₯Έ λ°˜μ‘ν˜• 이미지 μ΅œμ ν™”λ‘œ 이미지 λ¦¬μ†ŒμŠ€ μš©λŸ‰μ„ 82% 절감
    • 50mb ~ 100mb λ‹¨μœ„λ‘œ JS 청크 μŠ€ν”Œλ¦¬νŒ… 적용
    • μ‚¬μ΄νŠΈ 총 λ¦¬μ†ŒμŠ€λ₯Ό 25.8mbμ—μ„œ 11.4mb둜 55% 절감
    • λΈŒλΌμš°μ €, μžλ°”μŠ€ν¬λ¦½νŠΈ λ Œλ”λ§ μ΅œμ ν™”λ‘œ λ…ΈνŠΈ8 κΈ°μ€€ TTIλ₯Ό 158초 -> 21초둜 절감
    • μΈν”Όλ‹ˆν‹° 슀크둀 κ°œμ„  및 κ΄€μ„± 슀크둀 μ μš©ν•΄ 슀크둀 UX μ΅œμ ν™”
    • μ„ΌνŠΈλ¦¬, μŠ¬λž™μ„ ν†΅ν•œ μ—λŸ¬ λͺ¨λ‹ˆν„°λ§ μ…‹μ—…
    • μ–΄λ“œλ―Ό 곡톡 ν•„ν„°, ν…Œμ΄λΈ” 좔상화
    • μ•Œλ¦Ό μ„œλ²„ κ°œμ„  (λΆ„λ‹Ή μ΅œλŒ€ 전솑 횟수 40개 -> 20,000개)
    • ν”„λ‘ νŠΈμ—”λ“œ 개발자 μ±„μš© κ°€μ΄λ“œ λ¬Έμ„œ μ œμž‘
    • 기술 λΈ”λ‘œκ·Έ 개발 및 곡유 λ¬Έν™” μ „νŒŒ
    • λ¦¬μ•‘νŠΈ λͺ¨λ…Έλ ˆν¬ ν”„λ‘œμ νŠΈ μ—λŸ¬ 핸듀링
    • Graphql Apollo ꡬ쑰 섀계 및 νŠΈλŸ¬λΈ” μŠˆνŒ…

노루 (2018.03 ~ 2019.03)

ν”„λ‘ νŠΈμ—”λ“œ ν”„λ‘œκ·Έλž˜λ¨Έ

  • λ‹€μ–‘ν•œ 차트라이브러리λ₯Ό ν™œμš©ν•΄ 데이터 μ‹œκ°ν™” μž‘μ—… (μ˜€ν”ˆμ†ŒμŠ€ μ»¨νŠΈλ¦¬λ·°μ…˜)
  • μ‹¬ν”Œν•œ μ†ŒμŠ€μ½”λ“œ κ΄€λ¦¬μž 섀계 (Diff, Versioning λ“±)
  • RxJS의 μ‚¬μš©ν•˜μ—¬ 슀트림 기반의 λ°˜μ‘ν˜• ν”„λ‘œκ·Έλž˜λ°μ— λŒ€ν•΄ κ³ λ―Όν•˜μ˜€μŒ.
  • WebRTCλ₯Ό μ΄μš©ν•œ μ–‘λ°©ν–₯ μ˜μƒ 톡신 κ΅¬ν˜„
  • Gatsby + Bulma λ₯Ό 톡해 νšŒμ‚¬ μ†Œκ°œ μ‚¬μ΄νŠΈ ꡬ좕

트래포트 (2016.07 ~ 2017.08)

ν”„λ‘ νŠΈμ—”λ“œ ν”„λ‘œκ·Έλž˜λ¨Έ

  • ν˜Έν…”, μ•‘ν‹°λΉ„ν‹° μ„œλΉ„μŠ€ 아킀텍쳐 섀계
  • μ—¬ν–‰ μ˜¬μΈμ› 컀머슀 개발

🎨 Contributions

  • Pbkit, Storybook, Toolbelt, Tui Chart, Hexo Minos

πŸš€ Projects

πŸ”— Links

Site Link
Blog https://ddalpange.github.io
Email [email protected]
Github https://github.com/ddalpange

algorithm's People

Contributors

ddalpange avatar

Watchers

 avatar

algorithm's Issues

미둜 λ§Œλ“œλŠ” μ‚¬λžŒ

졜근 미둜λ₯Ό λ§Œλ“œλŠ” μž₯인인 λ§ˆμ΄ν¬λŠ” λ§ˆλ‹Ήμ— κ±°λŒ€ν•œ 미둜λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.
λ―Έλ‘œμ— μžˆλŠ” i 번째 j번째 열을 λ‚˜λ¬΄κ°€ μžˆμ–΄μ„œ μ§€λ‚˜κ°ˆ 수 μ—†λŠ” 경우 'X'둜, μ§€λ‚˜κ°ˆ 수 μ—†λŠ” 경우 '.' 으둜 ν‘œμ‹œν–ˆμŠ΅λ‹ˆλ‹€. λ§ˆμ΄ν¬λŠ” 미둜λ₯Ό 잘 λΉ μ Έλ‚˜κ°€λŠ” 친ꡬ μ§μ—κ²Œ 미둜λ₯Ό ν’€ 것을 λΆ€νƒν–ˆμŠ΅λ‹ˆλ‹€. 짐은 startRow ν–‰μ˜ startCol μ—΄μ—μ„œ 미둜λ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€.

일반적인 미둜 νƒˆμΆœ 방법과 달리 짐은 미둜λ₯Ό λ‹¨μˆœν•˜κ²Œ κ±·λŠ” 것이 μ•„λ‹ˆλΌ λ›°μ–΄λ„˜μ–΄ λ‹€λ‹™λ‹ˆλ‹€. 짐이 이동할 수 μžˆλŠ” ν˜•νƒœλŠ” moveRow 와 moveCol 에 κΈ°λ‘λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. i 번째 μš”μ†ŒλŠ” 짐이 이동할 수 μžˆλŠ” μ›€μ§μž„μž…λ‹ˆλ‹€. 짐은 ν˜„μž¬ μœ„μΉ˜μ—μ„œ moveRow[i] ν–‰κ³Ό moveCol[i] μ—΄ 만큼 이동할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ moveRow = {1, 0, -1} 와 moveCol = {3, -2, 5} 라면 짐은 (1, 3), (0, -2), (-1, 5) ν˜•νƒœλ‘œ 이동할 수 μžˆμŠ΅λ‹ˆλ‹€. (κ·ΈλŸ¬λ‚˜ 짐은 미둜 λ°–μœΌλ‘œ λ‚˜κ°ˆ 수 μ—†μœΌλ©° λ‚˜λ¬΄λ‘œ 이동할 μˆ˜λ„ μ—†μŠ΅λ‹ˆλ‹€.)

λ§ˆμ΄ν¬λŠ” 짐이 λ―Έλ‘œμ—μ„œ λ‚˜μ˜€μ§€ λͺ»ν•˜κ²Œ ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.λ§ˆμ΄ν¬λŠ” 미둜의 μ–΄λ–€ '.' μœ„μΉ˜μ—λ‚˜ 좜ꡬλ₯Ό 놓을 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ λ―Έλ‘œμ—μ„œ λ‚˜μ˜€μ§€ λͺ»ν•˜κ²Œ ν•  수 μ—†λ‹€λ©΄ κ°€λŠ₯ν•œ 짐의 이동 거리가 κΈΈμ–΄μ§€κ²Œ ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 짐은 λ―Έλ‘œμ—μ„œ 항상 μ΅œλ‹¨ 경둜둜 νƒˆμΆœν•œλ‹€κ³  ν•  λ•Œ 짐이 λ―Έλ‘œμ—μ„œ λ²—μ–΄λ‚  수 μžˆλŠ” μ΅œλŒ€ 이동 횟수λ₯Ό λ¦¬ν„΄ν•˜μ„Έμš”. 미둜λ₯Ό λΉ μ Έλ‚˜μ˜¬ 수 μ—†λŠ” κ²½μš°μ—λŠ” -1을 λ¦¬ν„΄ν•΄μ£Όμ„Έμš”.

ν΄λž˜μŠ€μ™€ ν•¨μˆ˜ μ •μ˜

class : MazeMaker
function : def longestPath(maze, startRow, startCol, moveRow, moveCol)

μ˜ˆμ‹œ

(0)
maze = {
"...",
"...",
"..."
}
startRow = 0
startCol = 1
moveRow = {1, 0, -1, 0}
moveCol = {0, 1, 0, -1}
return = 3

(1)
maze = {
"...",
"...",
"..."
}
startRow = 0
startCol = 1
moveRow = {1, 0, -1, 0, 1, 1, -1, -1}
moveCol = {0, 1, 0, -1, 1, -1, 1, -1}
return = 2

(2)
maze ={
"X.X",
"...",
"XXX",
"X.X"
}
startRow = 0
startCol = 1
moveRow = {1, 0, -1 ,0}
moveCol = {0, 1, 0, -1}
return = -1

(3)
maze = {
".......",
"X.X.X.X..",
"....X..",
"X....X.",
"......."}
startRow = 5
startCol = 0
moveRow = {1, 0, -1, 0, -2 , 1}
moveCol = {0, -1, 0, 1, 3, 0}
return = 7

(4)
maze = {
"......."
}
startRow = 0
startCol = 0
moveRow = {1, 0, 1, 0, 1, 0}
moveCol = {0, 1, 0, 1, 0, 1}
return = 6

(5)
maze = {
"..X.X.X.X.X.X."
}
startRow = 0
startCol = 0
moveRow = {2, 0, -2, 0}
moveCol = {0, 2, 0, -2}
return = -1

회문 λ§Œλ“€κΈ°

Palindrome(μ΄ν•˜ 회문)은 μ•ž/λ’€ μ–΄λŠμͺ½μœΌλ‘œ 읽어도 같은 말이 λ˜λŠ” 어ꡬλ₯Ό μ˜λ―Έν•œλ‹€.
예) 191, 4325234, 123321, eye

μ–΄λ–€ 수λ₯Ό λ°›μ•„μ„œ κ·Έ 수λ₯Ό 뒀집은(reverse) λ‹€μŒ μ›λž˜μ˜ μˆ˜μ— λ”ν•˜μ—¬ λ‚˜μ˜¨ 값이 회문이 될 λ•ŒκΉŒμ§€, 뒀집은 수 λ”ν•˜κΈ°λ₯Ό λ°˜λ³΅ν•˜μ—¬ νšŒλ¬Έμ„ μ°ΎλŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λΌ.

예) μž…λ ₯κ°’ 195인 경우

195 + 591 = 786
786 + 687 = 1473
1473 + 3741 = 5214
5214 + 4125 = 9339
좜λ ₯ : 195 4 9339
μ°Έκ³ 
νšŒλ¬Έμ„ 찾을 수 μ—†λŠ” μˆ˜λ„ μžˆλ‹€.
예) 아직 증λͺ…λ˜μ§€λŠ” μ•Šμ•˜μ§€λ§Œ 196은 νšŒλ¬Έμ„ 찾을 수 μ—†λŠ” μˆ˜μ΄λ‹€.
뒀집어 λ”ν•˜λŠ” 것을 100번 해도 νšŒλ¬Έμ„ 찾을 수 μ—†λŠ” κ²½μš°λŠ” 회문이 μ—†λ‹€κ³  κ°€μ •ν•œλ‹€.
예)
195 4 9339
196 is not palindrome

μž¬λ―ΈμžˆλŠ” μˆ˜ν•™

숫자 3κ³Ό 9λŠ” μž¬λ―ΈμžˆλŠ” μ„±μ§ˆμ΄ μžˆμŠ΅λ‹ˆλ‹€. 3의 배수의 각 자릿수의 합은 λ‹€λ₯Έ 3의 λ°°μˆ˜κ°€ λ©λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ 118 x 3= 354 이고 3 + 5 + 4 = 12 λŠ” 3의 λ°°μˆ˜μž…λ‹ˆλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ 9의 배수의 각 자릿수의 합은 λ‹€λ₯Έ 9의 λ°°μˆ˜κ°€ λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 75 x 9 = 675 이고 6 + 7 + 5 = 18 은 9의 λ°°μˆ˜μž…λ‹ˆλ‹€.

μ–΄λ–€ μ§„λ²•μ—μ„œ μ΄λŸ¬ν•œ μ„±μ§ˆμ„ κ°–λŠ”λ‹€κ³  λ‹€λ₯Έ μ§„λ²•μ—μ„œ μ΄λŸ¬ν•œ μ„±μ§ˆμ„ κ°€μ§€μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 10 μ§„μˆ˜μ—μ„œ 3은 μ΄λŸ¬ν•œ μ„±μ§ˆμ„ κ°€μ§€μ§€λ§Œ 5μ§„μˆ˜μ—μ„œλŠ” μ„±λ¦½ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ 3 x 4 λ₯Ό μƒκ°ν•΄λ΄…μ‹œλ‹€.

  • 10 μ§„μˆ˜ : 3 x 4 = 12, 1 + 2 = 3 -> 3의 배수
  • 5 μ§„μˆ˜ : 3 x 4 = 22, 2 + 2 = 4 -> 3의 λ°°μˆ˜κ°€ μ•„λ‹˜

base 진법이 μ£Όμ–΄μ‘Œμ„ λ•Œ μ΄λŸ¬ν•œ μ„±μ§ˆμ„ 가진 수λ₯Ό μ˜€λ¦„μ°¨μˆœμœΌλ‘œ λͺ¨λ‘ λ¦¬ν„΄ν•˜μ„Έμš” (λ‹€λ§Œ 0κ³Ό 1은 μ œμ™Έν•©λ‹ˆλ‹€).
μ–΄λ–€ μˆ˜κ°€ μ΄λŸ¬ν•œ μ„±μ§ˆμ„ κ°€μ§€λŠ”μ§€ μ•Œκ³ μž λͺ¨λ“  숫자의 곱을 κ³ λ €ν•  ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€.
λ§Œμ•½ 4자리 미만의 곱으둜 μ„±λ¦½λ˜λ©΄ 더 큰 μžλ¦¬μ—μ„œλ„ μ„±λ¦½λœλ‹€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 10 μ§„μˆ˜μ—μ„œλŠ” 999 보닀 큰 숫자λ₯Ό κ³ λ €ν•˜μ§€ μ•Šμ•„λ„ λ©λ‹ˆλ‹€.

μ˜ˆμ‹œ
0)
base = 10
returns : {3, 9}

1)
base = 3
returns : {2}

2)
base = 9
returns : {2, 4, 8}

3)
base = 26
returns : {5, 2}

4)
base = 30
returns {29}

κ°€μž₯ 얇은 지갑 λ§Œλ“€κΈ°

[문제]
1λ§Œμ›, 7λ§Œμ›, 11λ§Œμ›, 17λ§Œμ›κΆŒ 지폐가 μžˆλ‹€. μ›ν•˜λŠ” μ•‘μˆ˜λ₯Ό μž…λ ₯ν•˜λ©΄, κ°€μž₯ 얇은 지갑을 λ§Œλ“€ 수
μžˆλ„λ‘, μ§€νμ˜ 갯수λ₯Ό μ΅œμ†Œν™” ν•œ ꡬ성을 λ³΄μ—¬μ£ΌλŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

[μ˜ˆμ‹œ]
μž…λ ₯κ°’ 150000 인 경우 κ°€μž₯ 쒋은 ꡬ성은 7λ§Œμ› 2μž₯, 1λ§Œμ› 1μž₯으둜 총 3μž₯이닀.

[μž…/좜λ ₯]
μž…λ ₯ : ν”„λ‘œκ·Έλž¨μ˜ 첫번째 인자둜 숫자λ₯Ό λ°›λŠ”λ‹€.
예) μž…λ ₯값에 였λ₯˜λŠ” μ—†λ‹€κ³  κ°€μ •ν•œλ‹€. 즉, 135000원 같이 ꡬ성 λΆˆκ°€λŠ₯ν•œ μž…λ ₯값은 μ—†λ‹€.
λ³„λ„λ‘œ 였λ₯˜ 처리λ₯Ό ν•  ν•„μš” μ—†μŒ
좜λ ₯ :
예) 1λ§Œμ› Xμž₯, 7λ§Œμ› Xμž₯, 11λ§Œμ› Xμž₯, 17λ§Œμ› Xμž₯

회문 μ‹œμ¦Œ 2 : κ°€μž₯ 짧은 회문 길이 κ΅¬ν•˜κΈ°

μ‘΄κ³Ό κΉ€λ„κ· λ‹˜μ€ λŒ€ν•™μ—μ„œ λ¬Έμžμ—΄ 이둠을 κ³΅λΆ€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΉ€λ„κ· λ‹˜μ€ νšŒλ¬Έμ„ μ•„μ£Ό μ’‹μ•„ν•©λ‹ˆλ‹€. νšŒλ¬Έμ€ μ•žμ—λΆ€ν„° μ½μœΌλ‚˜, λ’€μ—μ„œλΆ€ν„° μ½μœΌλ‚˜ 같은 단어λ₯Ό λ§ν•©λ‹ˆλ‹€. 쑴은 κΉ€λ„κ· λ‹˜μ„ μž„μ˜μ˜ λ¬Έμžμ—΄λ‘œ νšŒλ¬Έμ„ λ§Œλ“€μ–΄ κΉ€λ„κ· λ‹˜μ„ 깜짝 λ†€λž˜μΌœμ£Όκ³  μ‹ΆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 쑴은 λ¬Έμžμ—΄ 뒀에 0 μ΄μƒμ˜ 숫자λ₯Ό μΆ”κ°€ν•΄ νšŒλ¬Έμ„ μƒμ„±ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 쑴이 생성할 수 μžˆλŠ” κ°€μž₯ 짧은 회문의 길이λ₯Ό λ¦¬ν„΄ν•˜μ„Έμš”.

ν•¨μˆ˜μ •μ˜
find(inputString)

μ˜ˆμ‹œ 데이터와 좜λ ₯ 데이터
(1) inputString = 'abab'
Returns : 5

(2) inputString = 'abacaba'
Returns : 7

(3) inputString = 'qwerty'
Returns : 11

(4) inputString = 'abdfhdyrbdbsdfghjkllkjhgfds'
Returns : 38

즐거운 νŒŒν‹°

μ‘°μ†Œμ—°μ”¨λŠ” λ‹€μž¬λ‹€λŠ₯ν•œ μ‚¬λžŒμž…λ‹ˆλ‹€. κ·Έλž˜μ„œ κ·Έμ—κ²ŒλŠ” μΉœκ΅¬κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λΆˆν–‰ν•˜κ²Œλ„ 그의 μΉœκ΅¬λ“€μ€ λ‹€μž¬λ‹€λŠ₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 각각의 μΉœκ΅¬λŠ” 2가지 μ£Όμ œμ—λ§Œ 관심이 있고 λ‹€λ₯Έ 주제둜 μ΄μ•ΌκΈ°ν•˜λŠ” 것을 μ‹«μ–΄ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ νŒŒν‹°λ₯Ό κ°œμ΅œν•  λ•Œλ§ˆλ‹€ λͺ¨λ‘κ°€ 즐겁게 νŒŒν‹°λ₯Ό 보내렀면 μ–΄λ–€ 친ꡬλ₯Ό μ΄ˆλŒ€ν• μ§€κ°€ 큰 λ¬Έμ œμž…λ‹ˆλ‹€. μ‘°μ†Œμ—°μ”¨λŠ” κ·Έ λ™μ•ˆμ˜ κ²½ν—˜μœΌλ‘œ μ΄ˆλŒ€λœ 친ꡬ λͺ¨λ‘κ°€ κ³΅ν†΅μ˜ ν₯λ―Έ μžˆλŠ” ν™”μ œκ°€ μžˆμ„ λ•Œ νŒŒν‹°λ₯Ό μ¦κΈ΄λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

λ¬Έμžμ—΄ λ°°μ—΄ first, secondκ°€ μ£Όμ–΄μ§‘λ‹ˆλ‹€. μ‘°μ†Œμ—°μ”¨μ˜ index 번째 μΉœκ΅¬κ°€ ν₯λ―Έ μžˆλŠ” ν™”μ œλŠ” first[index] 와 second[index] μž…λ‹ˆλ‹€. 즐거운 νŒŒν‹°κ°€ 되렀면 μ΄ˆλŒ€ν•  수 μžˆλŠ” μΉœκ΅¬λŠ” μ΅œλŒ€ λͺ‡ λͺ…인지 λ¦¬ν„΄ν•˜μ„Έμš”.

μ •μ˜ : ν΄λž˜μŠ€μ™€ ν•¨μˆ˜ μ •μ˜
Python : InterestingParty
Method : bestInvitation(first, second)

μ œμ•½μ‘°κ±΄
first : 1 λΆ€ν„° 50개의 μš”μ†Œλ₯Ό κ°–λŠ” λ°°μ—΄μž…λ‹ˆλ‹€.
second : first 와 같은 크기의 λ°°μ—΄μž…λ‹ˆλ‹€.
first, second 곡톡 : 각 μš”μ†ŒλŠ” 1~5개의 문자이며, 각 λ¬ΈμžλŠ” μ˜μ–΄ μ†Œλ¬Έμžμž…λ‹ˆλ‹€. index 번째 μš”μ†Œ first[index] 와 second[index] 의 λ‚΄μš©μ€ λ‹€λ¦…λ‹ˆλ‹€.

μž…λ ₯ / 좜λ ₯ 데이터
[1]
first = ['fishing', 'gardening', 'swimming', 'fishing']
second = ['hunting', 'fishing', 'fishing', 'biting']
return : 4

[2]
first = ['variety', 'diversity', 'loquacity', 'courtesy']
second = ['talking', 'speaking', 'discussion', 'meeting']
return : 1

[3]
first = ['snakes', 'programming', 'cobra', 'monty']
second = ['python', 'python', 'anaconda', 'python']
return : 3

[4]
first = ['t', 'o', 'p', 'c', 'o', 'd', 'e', 'r', 's', 'i', 'n', 'g', 'l', 'e', 'r', 'o', 'u', 'n', 'd', 'm', 'a', 't', 'c', 'h', 'f', 'o', 'u', 'r', 'n', 'i']
second = ['n', 'e', 'f', 'o', 'u', 'r', 'j', 'a', 'n', 'u', 'a', 'r', 'y', 't', 'w', 'e', 'n', 't', 'y', 't', 'w', 'o', 's', 'a', 't', 'u', 'r', 'd', 'a', 'y']
return : 6

νšŒμ‚¬ 쑰직과 κΈ‰μ—¬

μŠ€ν† λ¦¬

λŒ€κΈ°μ—…μ˜ HR λΆ€μ„œμ—μ„œ μΌν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
각 직원은 μ—¬λŸ¬ λͺ…μ˜ 직접적인 λ§€λ‹ˆμ €μ™€ λΆ€ν•˜ 직원을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
λ¬Όλ‘  λΆ€ν•˜ 직원도 λΆ€ν•˜ 직원을 κ°€μ§ˆ 수 있으며, λ§€λ‹ˆμ €λ„ λ§€λ‹ˆμ €λ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
X κ°€ A 의 λ§€λ‹ˆμ €, A κ°€ B 의 λ§€λ‹ˆμ €, B κ°€ A 의 λ§€λ‹ˆμ €, ... D κ°€ Y 의 λ§€λ‹ˆμ €λ‘œ ν•˜λŠ” A, B, C, D 의 연결이 μžˆλ‹€λ©΄ 직원 X λŠ” 직원 Y 의 상사라고 λΆ€λ¦…λ‹ˆλ‹€. (λ¬Όλ‘  X κ°€ Y 의 직접적인 λ§€λ‹ˆμ €λΌκ³  해도 X λŠ” Y 의 상사라고 λΆ€λ¦…λ‹ˆλ‹€).
λ§Œμ•½ A κ°€ B 의 상사라면 B λŠ” A 의 상사일 수 μ—†μŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ κΈ°μ—… 정책에 λ”°λ₯΄λ©΄ λΆ€ν•˜ μ—†λŠ” μ§μ›μ˜ κΈ‰μ—¬λŠ” 1μž…λ‹ˆλ‹€. 그리고 직원이 λΆ€ν•˜ 직원이 μžˆλ‹€λ©΄ μ§μ›μ˜ κΈ‰μ—¬λŠ” 직접적인 λΆ€ν•˜λ“€μ˜ κΈ‰μ—¬ 합계와 κ°™μŠ΅λ‹ˆλ‹€.

string λ°°μ—΄ relations κ°€ ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. 이 λ°°μ—΄μ—λŠ” 직원 i κ°€ 직원 j 의 직접적인 λ§€λ‹ˆμ €μΈ 경우 i 번째 μš”μ†Œμ˜ j 번째 κΈ€μžκ°€ 'Y' 둜 λ˜μ–΄ 있으며 μ•„λ‹Œ 경우 'N' 으둜 λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  μ§μ›μ˜ κΈ‰μ—¬ 합계λ₯Ό λ¦¬ν„΄ν•΄μ£Όμ„Έμš”.

ν•¨μˆ˜ μ •μ˜

def totalSalary(relations)

μ œμ•½ 쑰건

relations : 1~50 개의 μš”μ†Œκ°€ μžˆλŠ” 배열이며 각 μš”μ†ŒλŠ” μš”μ†Œ μˆ˜μ™€ 같은 λ¬Έμžμ—΄μž…λ‹ˆλ‹€. 각 λ¬Έμžμ—΄μ€ 'Y' 와 'N' 으둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. i 번째 μš”μ†Œμ˜ j 번째 λ¬ΈμžλŠ” 'N' μž…λ‹ˆλ‹€.

μž…λ ₯ 데이터와 좜λ ₯ 데이터

  • 1번
    relations = {'N'}
    return : 1
    직원이 1 λͺ… 밖에 μ—†μœΌλ―€λ‘œ 닡은 1

  • 2번
    relations = { 'NNYN', 'NNYN', 'NNNN', 'NYYN' }
    return : 5
    직원이 4λͺ…μž…λ‹ˆλ‹€. 0, 1, 3 은 2의 λ§€λ‹ˆμ €μ΄κ³  3은 1의 λ§€λ‹ˆμ €μž…λ‹ˆλ‹€.

  • 3번
    relations = {
    'NNNNNN',
    'YNYNNY',
    'YNNNNY',
    'NNNNNN',
    'YNYNNN',
    'YNNYNN'
    }
    return : 17

  • 4번
    relations = {
    'NNNN',
    'NNNN',
    'NNNN',
    'NNNN'
    }
    rreturn : 4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.