알레르기

알레르기

쉬움

지침

어떤 사람의 알레르기 점수가 주어졌을 때, 그 사람이 특정 항목에 알레르기가 있는지, 그리고 전체 알레르기 목록이 무엇인지 알아내요.

알레르기 검사를 하면, 그 사람이 (검사받은) 모든 알레르기에 대한 정보가 담긴 숫자 점수 하나가 나와요.

검사한 항목과 그 값은 다음과 같아요:

  • eggs (1)
  • peanuts (2)
  • shellfish (4)
  • strawberries (8)
  • tomatoes (16)
  • chocolate (32)
  • pollen (64)
  • cats (128)

예를 들어 Tom이 peanuts과 chocolate에 알레르기가 있다면 점수는 34가 돼요.

이제 34라는 점수만 가지고, 프로그램이 다음을 알 수 있어야 해요:

  • 위에 나열된 알레르기 유발 물질 중 Tom이 어느 것에 알레르기가 있는지
  • Tom이 알레르기가 있는 모든 알레르기 유발 물질

참고: 어떤 점수에는 위에 나열되지 않은 알레르기 유발 물질(즉, 256, 512, 1024 등의 점수에 해당하는 알레르기 유발 물질)이 포함될 수 있어요. 프로그램은 점수에서 이런 부분을 무시해야 해요. 예를 들어 알레르기 점수가 257이라면, 프로그램은 eggs (1) 알레르기만 알려줘야 해요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Delphi Pascal Exercism

알레르기 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Delphi Pascal 트랙을 연습 문제 76개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.

알레르기 깊이 살펴보기!

비트 시프트, 비트 단위 비교를 비롯한 여러 이진수 개념을 살펴봐요! 패턴 매칭을 사용한 풀이와 Erlang에서 재귀를 사용한 흥미로운 접근법도 함께 살펴봐요.