Koala - 9기/기초 알고리즘 스터디

[백준/C++] 3460 이진수

02년생쩡이 2023. 1. 8. 22:12

https://www.acmicpc.net/problem/3460

 

3460번: 이진수

양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다.

www.acmicpc.net

문제 핵심 개념

입력받은 수(13)을 이진수로 바꿔서 문자열에 집어넣는게 아니라 이진수 중에 1의 인덱스자리를 출력하는 문제다. '인덱스'에 꽂혀서 이진수를 string 문자열로 굳이 받으려고 해서, <stack> 불러오고 북치고 장구침... 근데 굳이 문자열로 안받고 2로 나눈 나머지가 0인지 1인지 정하고, 나머지가 1이면 최종값(idx라고 변수 설정)에 1을 더하고, 나머지가 0이면 그냥 넘어간다.