다시 알림?


9

소개

알림에 대해 들어 본 적이 있습니까? 아니? 약 2 년 전까지도 마찬가지였습니다. 기본 전제는 교사가 미리 알림을 보내고 학생과 대화하는 것입니다. 꽤 깔끔 하지요? 심지어 감정 표현을 보내고 메시지에 반응 할 수 있습니다! 내가 매일하는 일.

그러나 Remind의 한 가지는 교사가 항상 "당신의 숙제를하세요!" "그렇지 않으면 F를 얻게됩니다!". 그러나 "화요일 테스트"또는 가끔 "좋은 하루 보내세요!"와 같은 유용한 정보도 있습니다. 나는 항상 항상 엄지 손가락으로 행복하게 대답하지만 때로는 엄지 손가락을 내려야합니다.

도전

오늘해야 할 일은 메시지에 특정한 의미가 있는지 알아내는 것입니다. 긍정적 인 의미가있는 경우 엄지 손가락으로 회신하십시오. 부정적인 의미가있는 경우 아래로 엄지 손가락으로 회신하십시오.

내포를 어떻게 감지해야합니까?

긍정적 인 의미는 보통 3 개의 단어를 포함합니다. 세 단어는 ' 행복 함', '좋음', '통과' 입니다.

부정적 의미도 3을 갖습니다. 그 3 : 시험, 실패, 숙제 .

무엇을 테스트하고 있습니까?

메시지에 긍정적, 부정적 또는 두 가지 의미가 모두 포함되어 있는지 테스트 중 입니다.

메시지에 긍정적 인 의미가있는 경우 계속 진행 하여 엄지 손가락 (U + 1F44D) 의 유니 코드 코드 포인트 를 반환하십시오 .

음의 의미가있는 경우, Thumbdown에 대한 유니 코드 코드 포인트를 반환하십시오 (U + 1F44E).

메시지에 부정적 의미와 긍정적 의미가 모두있는 경우 중립면의 코드 포인트를 반환하십시오 (U + 1F610).

다른 이유로 어떤 의미도없는 경우, 멋진 ol 'shrug (¯ \ _ (ツ) _ / ¯)을 반환하십시오. 어깨를 으 doesn하지 않으면 어깨를 으 to하는 이모티콘 이모티콘 링크가 있습니다.

제약

  • 프로그램은 메시지를 입력으로 가져와야합니다.
  • 긍정적 인 의미는 엄지 손가락 코드 포인트 (U + 1F44D)를 반환해야합니다.
  • 음의 의미는 썸 다운 코드 포인트 (U + 1F44E)를 반환해야합니다.
  • 메시지에 두 가지 의미가 모두 있으면 중립 얼굴 코드 포인트 (U + 1F610)를 반환하십시오.
  • 메시지에 의미가 없으면 어깨를 으 ((¯ \ _ (ツ) _ / ¯)를 반환하십시오.
  • 이것은 최단 바이트 승리

테스트 사례.

Input -> Output
Happy Good Friday! -> U+1F44D
Congrats, you just played yourself -> ¯\_(ツ)_/¯
You failed the test. -> U+1F44E
Good job on the test. -> U+1F610

당신은 그것을 탈출해야합니다
Rod

괜찮아, 테스트 케이스는 어깨를 으
KuanHulio

1
"메시지에 두 가지 의미가 모두 있으면 중립 얼굴 코드 포인트 (U + 1F610)를 반환하십시오." 그리고 대소 문자를 구분하지 않습니다.
KuanHulio

명확히하기 위해 : 문자열에 두 가지 유형의 단어가 모두 포함되어 있으면 다른 유형보다 더 많은 유형이 있는지 여부에 관계없이 중립을 반환합니까?
Shaggy

@Shaggy 네, 그냥 중립을 반환
KuanHulio

답변:


2

파이썬 (3) , 182 (166) 159 151 바이트

c=input().lower().count
print((["¯\_(ツ)_/¯"]+list("👍👎😐"))[any(map(c,["good","happy","passed"]))+any(map(c,["fail","test","homework"]))*2])

온라인으로 사용해보십시오!


any인쇄물 안에 두 가지를 모두 넣을 수 있습니다.d[any(<positive>)+any(<negative>)*2]
Rod

1
169 대신 182 UTF-8 바이트를
얻습니다.

utf는 항상 여분의 바이트를 잊게 만듭니다. 보통 코드에서 파이썬의 len () 함수를 사용합니다. 편집
Martmists

"👍👎😐"나를 위해 잘 작동합니다. 어떤 버전의 파이썬을 사용하고 있습니까?
Martmists 17

나는 그것을 테스트하지는 않았지만 print(d[("good"in m or"happy"in m or"passed"in m)+("bad"in m or"test"in m or"homework"in m)*2])대신 할 수 있다고 생각합니다.
James

0

자바 스크립트, UTF-8 인코딩, 100 바이트

s=>['¯\_(ツ)_/¯',...'👎👍😐'][2*/happy|good|passed/i.test(s)+/test|fail|homework/i.test(s)]

테스트 사례 :


0

파워 쉘, 190 바이트

"$($s=Read-host;"$s ->";$1=("Test","Fail","Homework"|?{$s-match$_});$2=("Happy","Good","Passed"|?{$s-match$_});if($1-and$2){"😐"}elseif($1){"👎"}elseif($2){"👍"}else{"¯\_(ツ)_/¯"})"

서로 옆에 입력 및 출력을 표시합니다.

행복한 금요일! -> 👍

축하합니다. 방금 연주하셨습니다.-> ¯ \ _ (ツ) _ / ¯

테스트에 실패했습니다. -> 👎

시험 잘 했어요 -> 😐


0

PowerShell, 187 바이트

read-host|%{$s=$_;$f=0;0..5|?{$s.indexof((-split'Happy Good Passed Test Fail Homework')[$_],0,$s.length,3)+1}|%{$f=$f-bor(1,2)[$_/3]};$s+' -> '+('¯\_(ツ)_/¯','👍','👎','😐')[$f]}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.