질문 게시판 보니까 대충 비트 연산자써서 풀면 풀린다는데 대체 어케하는겨
[질문] 이거 푼 사람 있음? 코드업 1991 3의 배수 해결하기
익명(223.62)
2022-12-18 14:56
추천 0
댓글 13
다른 게시글
-
실랜디/골랜디 문제 뽑아ㅏ주는 사이트 뭐였지 [5][일반] 익명(222.232) | 22.12.18추천 0
-
여기 릿코드는 안하냐 [1][일반] 익명(218.234) | 22.12.18추천 0
-
개같이 ps 입갤 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [5][일반] 익명(221.163) | 22.12.18추천 0
-
c++ 우선순위큐 질문좀 하겠슴니다 [13][일반] 익명(59.16) | 22.12.18추천 0
-
종만북 vs 노란책[질문] 익명(106.101) | 22.12.18추천 0
-
이 문제 수식 질문 좀 [4][일반] 익명(220.127) | 22.12.18추천 0
-
진짜 지능이 낮은건가?? [1][일반] 익명(58.230) | 22.12.18추천 0
-
오늘도 연전연승 [3][일반] 익명(121.190) | 22.12.18추천 14
-
점수 떨궜다 생각했는데 점수 올랐네? ㅋㅋㅋ[일반] 익명(211.234) | 22.12.18추천 0
-
뭐야 오늘도 짱깨셋이었냐 ㅋㅋㅋㅋㅋㅋ [18][일반] 익명(39.7) | 22.12.18추천 0
신기하네 이게 머야
일반적인 3의배수 판정법이 아니고 비트 연산자라고?
아 알겠다 비트연산으로 덧셈 구현해서 3의 배수 판정법 반복했을 때 3, 6, 9 중에 하나 나오면 되겠다
아스키코드로 0x30~0x39 까지가 0~9니까 0xf랑 and 연산해서 숫자도 뽑아올 수 있을 듯
이건 사풀인 거 같긴 한데, 파이썬에서 divmod를 쓴 뒤 그 부분에서 토큰을 토막내서 (mod를 알아볼 수 없도록) 코드를 2조각 낸 다음에 두 코드를 "".join으로 다시 붙여서 exec 돌리면 됩니다
아마 정해는 DFA 구현이 아닐까 싶네요
혹시 조금 더 쉽게 설명 부탁드려도 될까요..ㅠㅠ
(if를 안 쓴다는 전제 하에) divmod 함수를 써서 문제를 푼다고 생각해 봅시다. 그러면 풀이로 a=int(input());d,m=divmod(a,3);print([1,0,0][m]) 이런 코드가 나올 겁니다.
이제 mod가 적힌 부분을 쪼개기 위해 코드를 두 부분으로 나누면 "a=int(input());d,m=divm" "od(a,3);print([1,0,0][m])" 이렇게 두 부분으로 나뉩니다.
이제 이 두 문자열을 "".join으로 다시 붙인 다음 exec을 써서 실행시키면 됩니다.
감사합니다 ㅎㅎ 덕분에 해결했습니다
별게다있네 ㅋㅋㅋ
풀면 정풀 보임