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