컴공 일기264
게시글 주소: https://i9.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를 선물하세요.
-
어원편, 고난도 이렇게 두 권 옛날에 사서 있는데 워마 수능 2000이나 션티...
-
낼갈라하는데
-
자퇴각?
-
일반물리학1(써웨이) 예습하고 가면 고등학교 수준의 물1물2내용은 다 담겨있나요?...
-
수능 끝나고 2달 동안 개백수 개폐인처럼 살다가 공부하려니까 시발..집중ㅇ 존나...
-
11명 뽑는과에 예비 6번입니다 경쟁률은 3.64:1이였습니다 가망 있을까요
-
가요이 순천 간 거 봤는데 되게 동네가 아기자기하고 이쁜 것 같음
-
안녕하세요 현 예비고3 입니다 자사고 재학 중인데 내신은 3후 ~ 4초 정도라......
-
23수능때 재수해서 대학가서 1학기 마치고 육군 입대후 수능에 미련이 남아서 공부는...
-
제가 화,수,목,금 은 22시에 자서 06시에 기상하는데 월,토,일은 편의점 알바...
-
저녁 콘푸로스트 1
굿
-
들어오라고요
-
노무사 관세사 법무사 세무사 감정평가사 회계사 변호사 행정고시 입법고시 외무고시...
-
자신의 D를 E하려는 F가 G함
-
가천의 최초합+장학 17
2지망 카드지만 조발해주셔서 너무 행복하네요!!
-
글리젠이 말이 아니네...
-
최저 맞추는 전제하에 상향 적정 하향까지 알려주시면 감사하겠습니다 아 문과이고 사회과학계열 희밍함
-
장점, 단점이 있나요? 트럼프 정권은 걍 중국만 담그려고하는것 같던데 걍 중국만...
-
17명 뽑는과고 예비는 항상 1배수 이상 도는데 예비22등을 받았습니다... 이러면...
-
고집 ㅈ나쎄고 집요한 쌩노베 어디없냐? 추르릅.. 내가 1등급 만들어줄게..❤️
-
방금 질문글 올렸는데 사탐98보다 과탐89가 더 어렵다네여 진짜 존경해요 전...
-
25학번선에서 해결할 가능성 더 높지않음? 4500vs 잠재적 20만 인데...
-
물론 성취 기준 복붙인 건 알지만... 12 원핵 vs 진핵 비교요? (샤가프...
-
학원 안 다니고 있고 혼자 공부 중인데 모평 보려면 출신 고등학교 아니면 모평...
-
카카오톡 팀채팅 24
릴레이소설 기능 재밌네요
-
수학에서 연산은 잘하는데 응용으로 못 넘어가겠어요.. (기초 예제도 자꾸 틀림...
-
지금 듣는 국어 강사 12
적어주세요
-
금번 원광대학교 의과대학 불인증은 증원평가와 무관한 정기평가의 결과입니다. 불인증...
-
예전에 민주당에서 박근혜 가짜뉴스 퍼트릴때 박근혜가 청화대에서 굿을한다,마약x스를...
-
지수 단독 문제일까 지수 로그 역함수 문제일까
-
이맘때쯤이면 항상 나오는 주제인듯 학점은행제로 둘다 자격충족가능한데 솔직히 바로...
-
난이도 둘이 비슷한가요..?
-
치한약수 서연고 붙어놓고 다 반수할듯한데...이러면 08들이 진짜 지옥일듯
-
모든 감정, 정서 등을 논리로 분석하는겁니다
-
ㅈㄱㄴ
-
내 역랑이 딸릴 듯
-
과외 5
입학 전에 쌩노베 학생 좀 가르치고 싶다 혼자 공부할 수 있게 만들어주고 싶다...
-
천문학적 액수 퍼주면서 주한미군을 붙잡아야 할까? 21
밸런스 게임. ‘미국에 방위비 분담금 5배 정도 올려주기 VS 주한미군 대폭 감축...
-
행정학과가서 외시준비하는사람은 나밖에없겟지..
-
개정은 원순열이 안 들어가서 따로 공부해야 한다는 거 같던데 분량 많거나 난이도...
-
고3 정시 고민 1
생명과학과 희망하는 고3 학생인데 원래 다 이과 과목이였다가 공부량이 너무 많아져서...
-
부산대 합격생을 위한 노크선배 꿀팁 [부산대 25학번] 0
대학커뮤니티 노크에서 선발한 부산대 선배가 오르비에 있는 예비 부산대학생, 부산대...
-
잘 돌아서 안 하려고 했는데 또 들어오게 되네
-
부탁이 아니라 강요입니다
-
등급컷은 상관없고 만점표점이 궁금한 ChillGuy일 때 저번 칼럼에서 2등급 이하...
-
안녕하세요 오르비by매시브 수학강사 이대은입니다. 벌써 2025년이 되고 이주일이나...
-
한석원 알파텤 다음 기출로 넘어가도 무관??
-
고심리 썼었다면 붙었나요?
-
예비고3들한테 취업걱정 ㅈㄴ받노
-
성대 공학계열 0
최종컷 몇으로 보시나요...? 아직 점공 50퍼도 못 넘었던데 ㅠㅠ
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.