자바스크립트를 활성화 해주세요

p060 Codewar Prize Draw 문제풀이

 ·  ☕ 2 min read

간혹 글을 쓰기에 텐션이 떨어지거나 하면, 문제를 풉니다.

문제를 푸는 시스템으로는 저는 codewar를 찾아가서 푸는 편입니다.

  • 영어로 출제됩니다만, 테스트케이스가 있어서 그렇게 이해하기 어렵지 않습니다.
  • 경연대회의 형식처럼 파일로 부터 값을 입력받아들여야 하는 경우는 잘 없습니다. leetcode처럼 함수만 완성합니다.

파워쉘을 선택하여 푸는 경우는 퍼포먼스를 겨루어야겠다는 생각하는 것은 내려놓고 풉니다. 그것이 정신건강에 좋습니다.

오늘 풀어본 문제는 Prize Draw 문제입니다.

문제 내용

  • 상품 추첨에 참가하려면 이름을 입력해야합니다. 참가지가 없다면 “No participants"를 출력합니다
  • 이름의 각 글자는 영어 알파벳 순위에 해당하는 값을 가지고 있습니다. A와 a는 1, B와 b가 2 로 모두 더합니다.
  • 다시 이 더한 값에 이름의 길이를 숫자로 더합니다. 이를 rank값이라고 합니다.
  • 무작위의 가중치 배열이 주어지고 이 해당 값과 rank값을 곱한 것을 winning number라고 합니다.
  • 가중치 배열은 적어도 참가자수 이상입니다.
  • winning number는 높음->낮음 순으로, 만일 winning number가 같은 이름이 있다면 낮음->높음 순으로 순위를 정합니다.
  • 무작위의 숫자 n에 해당하는 이름을 리턴해야 합니다. n 에 해당되는 이름이 없다면 “Not enough participants"를 출력합니다.

문제풀이 환경

문제를 풀 때는, intellisense를 사용할 수 있는 가장 가벼운 환경인 powershell ise를 사용하고 있습니다. 보시는 것처럼 문제화면, 풀이화면으로 반 씩 나누어서 layout하고 있습니다.

p060_solving_screen.png

python이나 go언어를 사용할 때는 jetbrains의 ide를 사용하고 있습니다.

결과 화면

p060_result.png

주의점

  • 윈도우즈의 powershell 5.1은 codewar의 pwsh 버전과 안맞는 경우가 있을 수 있습니다.
  • 리눅스상의 pwsh을 사용하므로 sort 라던지, function의 alias가 linux의 명령어와 겹치는 경우에는 리눅스 커맨드가 우선되므로 확실하게 Sort-Object로 표현해서 사용해야 합니다.

레퍼런스

공유하기

tkim
글쓴이
tkim
Software Engineer