시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB75282241.509%

문제

세상에는 많은 종류의 문자가 있다. 이를 모든 디지털 장비에서 똑같이 다룰 수 있도록 표준 인코딩 방식인 유니코드가 만들어졌고 현재도 계속해서 업데이트가 진행되고 있다. 그 과정에서 비슷하게 생긴 문자 혹은 모양이 완전히 같은 문자가 발생하게 되었고, 이를 이용한 도메인 동형이의자 공격(IDN homograph attack)이라는 부작용도 발생하게 되었다.

특히 한자의 경우 여러 나라에서 사용하고 각 나라 별로 사용하는 방식에 차이가 있는 등의 이유로 동형이의자가 많다. 예를 들어 탕수육의 한자 표기인 '糖水肉'의 경우, 첫 번째 글자인 糖(U+FA03)는 糖(U+7CD6)과 모양이 같고 두 번째 글자인 水(U+6C34)는 ⽔(U+2F54)와, 세 번째 글자인 肉(U+8089)은 ⾁(U+2F81)과 모양이 같기 때문에 이 중에 하나라도 다른 글자로 변환된다면 다른 문자열이지만 사용자 입장에서는 구분이 사실상 불가능하기 때문에 혼란을 줄 수 있다.

문자열이 입력되었을 때, 이 문자열의 일부 문자를 다른 문자로 바꿔서 똑같이 생긴 다른 문자열을 만들 수 있는지를 찾는 프로그램을 작성해보자.

입력

입력은 한 줄로 구성된다. 입력되는 문자는 모두 유니코드 기본 다국어 평면에 정의된 문자임이 보장되며, 문자열의 길이는 1,000 이하이다.

출력

이 문자열의 일부 문자를 바꿔서 똑같이 생긴 다른 문자열로 바꿀 수 있으면 Yes, 아니면 No를 출력한다. 여기에서 똑같이 생긴 문자는 Noto Sans CJK KR로 표현되는 모양이 같음을 의미한다.

예제 입력 1

糖水肉

예제 출력 1

Yes

예제 입력 2

乾烹鷄

예제 출력 2

No

출처

Contest > BOJ User Contest > 구데기컵 > 제1회 구데기컵 🈚번

  • 문제를 만든 사람: bryanj

채점 및 기타 정보

  • 예제는 채점하지 않는다.