컴공 일기264
게시글 주소: https://orbi.kr/00071280638
10진수(decimal)를 2진수로 변환하는 알고리즘입니다.
주로, stack을 이용해서 구현하지요.
20을 2진수로 구현하는 방식은 다음과 같습니다.
20 / 2 = 10 …0
10 / 2 = 5 … 0
5 / 2 = 2 … 1
2 / 2 = 1 … 0
1 / 2 = 0 … 1
몫이 0이 될 때 까지 나누고, 나머지를 밑에서부터 출력하면
10100이 되지요.
이 과정을 표현하기에 적합한 자료구조가 stack입니다.
제일 먼저 2로 나눈 수는 20이지만, 20을 2로 나눈 나머지가 제일 마지막에 출력 되어야 하죠.
말하자면, 나눈 순서와 나머지를 출력하는 순서가 거꾸로 뒤집힌 상황입니다.
그러니까, 1이 제일 마지막으로 2로 나누어졌지만, 이 결과로 얻어진 나머지가 우선적으로 출력이 되죠.
다시 말해, First in - Last out을 만족하는 stack구조가 적합하다는 판단을 내릴 수 있죠.
제일 첫번째로 입력된 데이터가 마지막에 출력된다.
도출 과정을 글로 요약해보면 이렇습니다.
1. “해당 수를 나눈 몫이 0이 될 때까지 2로 나눈다”
2. “나눌 때 마다 얻게 된 나머지를 스택에 집어 넣는다”
3. “스택의 데이터가 모두 없어질 때까지 출력한다”
조금 다른 감이 없지 않아 있습니다만, 실제 알고리즘을 구현할 때
이런 식으로 간단히 의사를 정리해두는 코드를 Pseudo code(의사 코드)라고도 합니다.
개인적인 견해로, 이런 예시로 보면 알 수 있듯이 코딩은 절차적인 글쓰기입니다.
시제를 넘나드는 OOP로 넘어가면 얘기가 조금 달라지지만, 근본이 이렇죠.
#include <iostream>
#include <string>
#include <stack>
using namespace std;
stack<char> st;
int main()
{
int num;
cin >> num;
//해당 수를 나눈 몫이 0이 될 때까지 2로 나눈다
while(num > 0)
{
int ret = num % 2;
char res = '0' + ret;
//나눌 때마다 얻게 된 나머지를 스택에 집어 넣는다
st.push(res);
num /= 2;
}
//스택의 데이터가 모두 없어질 때까지 출력한다
string result = "";
while(!st.empty())
{
result += st.top();
st.pop();
}
cout << result << endl;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
강민철을 모방하는 독해가 아니라 그냥 강민철이 하는 독해가 하고 싶다
-
윤석열<<< 4
윤석열하나
-
고2 첫 모고 잘 쳐야 반에서 기강 씨게 잡을 수 있을 것 같아서 3모 기출 풀리고...
-
지구러구 1등급 목표로 달려야하는데 계속 3등급에 머물러서...ㅠ 사탐런...
-
진짜 아가리 닫으면 기각 내지 각하 최소 4월까지 선고 밀릴거 귀신같이 알고 지금...
-
제가 현역인데 2월 말부터 급하게 강기분 듣고있거든요.. 학교다니면서 하느라...
-
인도 여자 그만 띄워라 진짜 알고리즘이 곱창났나 왜 자꾸 릴스 넘기다가 인도여자가...
-
/) /) *´ㅅ`) 해설 가지고 다들 어띃게 공부히시나요…
-
탐구 말고 국어 수학 선택 말하는거 ㅇㅇ 이거 때문에 파가 ㅈㄴ 갈림 미적 84...
-
잘가라 11
재밌었다
-
에휴 시발 ㅈ같노
-
과외 그냥 뛸까 13
돈을 벌어야해
-
고딩 때 방학 동안 학교에서 기하 선생님 초청해서 한 번 해봤었고 그 때 이후로...
-
근데 그 멍청한 엔수생이 나일 확률이 높다.. 열심히 해서 1등급을 쟁취해보자
-
3덮은 안녕 3
3덮은 보내주고 바로 4덮 준비.
-
3덮 2
4등급 중후반 점수 어느 정도로 나올까요.. 한의대 뉴런 사문 노베 자작 헬스터디...
-
사실 증원 자체가 wwe였고 그걸로 도파민 채우기나 하라는 대두창의 큰 뜻이였던거임 ㅋㅋ
-
이제 구매해도 안올라나
-
남왕벌? 이런건 없나요 11
대부분 다 남자여서 게이커뮤가 아닌이상 남자에게 쏠릴 일은 없어요?
-
확통은 뉴런 수분감 난이도 비슷할거같은데 아님말고
-
난 여자면 다 좋은데
-
더럽다vs안더럽다 13
제 책상임뇨
-
교육청은 1 나오고 작년 평가원과 수능도 어느정도 1컷정도에 맞췄는데 엑셀만 풀면...
-
OT 받고 바로 들어가는데 정신이 없다;;
-
급수 어카지 2
오늘 브릿지 급수만 10분 넘게쓰고있어서 타이머를 꺼버림 근데 심지어 틀림 답지를...
-
작수 화1생1에서 올해부터 사탐1 과탐1을 시도하려합니다. 생윤과 사문을 둘 중...
-
내가 프로그램 취지에 딱 맞을 거 같은데
-
윤도영 나무위키 9
옛날에 목차가 yoon’s profile yoon’s quote 이런 식이였는데 ㅈㄴ 오글거림
-
나만들어야하는데... +카메라없잖아쉬발
-
96점... 31, 37 틀렸네요...
-
비대면 과외 존좋 10
선생님이 엄청 꼼꼼하게 피드백 해주시고 신경도 많이 써주심 진짜최고 예전에 뉴진스...
-
ㅇㄱㅈㅉㅇㅇ? 20년 살면서 글읽을때마다 속발음했는데 아무문제 없던데
-
수업 하나에 밥약 하나만 했는데도 존나 피곤해서 딸도 못칠 것 같음
-
Mool’s Codon 13
Mool’s HWE Mool’s Mating Mool’s Equilibrium...
-
귀가 ㅇㅈ 4
밖에 겁나 추움요
-
리버스 너췌먹이냐
-
2점짜리 틀리는데는 5초 컷 아오 adhd 시치
-
이정도면 메타인지 잘 된거 같나요..? 문제점 고치고 다음 모고때문 실수안해볼게요
-
그러하다
-
불수학이나 기도 진인사대천명
-
재밌겟다
-
부활하면 김준 이기나?
-
트스 캠타 생협 긱사식당 언기도식당 연일트레비앙 가끔오시는 호떡아저씨 배달 진짜...
-
평일의 마무리로 나쁘지 않을지도
-
ㅈㄱㄴ
-
범모 영접ㄷㄷ 0
언제풀지
-
수업이 너무 좋아서 미치겠는데 반대로 체화오 어려운만큼 안되는 바람에 미치겠습니다...
-
왜냐면 이제부터 기다림이 24시간이 넘을 때마다 대가리를 존나 쎄게 쳐서 제...
-
누구는 대학에서 자만추하기 빡세다 과팅 같은 자리 있으면 다 나가봐라 이러고 누구는...
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.