-
SWEA 1288번: 새로운 불면증 치료법/BitmaskProblem Solving/SWEA 2021. 1. 18. 00:08
숫자의 출현 여부를 체크하는 문제
스터디원께서 비트마스킹을 이용해서 체크 여부를 관리한게 흥미로워서 코드를 루팡해봤다.
숫자를 계속해서 반복문을 돌리면서 left shift연산을 이용해서 숫자를 체크하고, 모든 숫자 비트가 1이면 (10자리가 모두 1이면, = 1023이면) 반복을 종료한다.
#include <cstdio> int tc; int main() { scanf("%d", &tc); for (int T = 1,n; T <= tc; T++) { scanf("%d", &n); int s = 0, ans = 0; int i=n,t=0; while (1) { int k = i; while (k) { t |= (1 << (k % 10)); k /= 10; } if (t == 1023) break; i += n; } printf("#%d %d\n", T, i); } }
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 2383번: 점심 식사시간(C++)/Bitmask, Simulation (448) 2021.09.14 [SWEA] 5650번: 핀볼 게임(C++)/Simulation (411) 2021.09.14 SWEA 1961번: 숫자 배열 회전 (0) 2021.01.16 SWEA 2001번: 파리 퇴치/DP (0) 2021.01.16 SWEA 2112번: [모의 SW 역량테스트] 보호 필름 (0) 2020.05.26