컴공 일기264
게시글 주소: https://o.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를 선물하세요.
-
국어 91 영어 84 수학 83총점 258점....여기 표본 너무쎈건지 제가...
-
오르비 여러분을 의심하는 게 아니라 너무 높아서...ㅠㅠ근데 허수도 정말 간간히...
-
제가 이번에 공사 이과 조종으로 시험을 쳤는데 정책, 조종 모두 안정권인 점수가...
-
사관학교 합격될까요 ㅠㅠ 국어 96 영어 84 수학 74 수학망함 ㅠㅠ
-
국어 98 수학 71 영어 81 인데 일차합격할수 있나요??
-
국어 97 영어 90수학 49 광탈ㅋㅋ6등급이.. 아니길 빌어서 과락만 아니면영어...
-
경찰대학 경찰대 언어: 76.48점 수리: 77.14점 외국어: 72.85점 육사...
-
찍은거 많이 맞아서 좋다 이랬는데 푼거 검산할 시간 없어서 걍 냈더니 ㅋㅋㅋㅋ 어케...
-
육사 셤치고 왔는데 아 전반적으로 난이도 낮아져서 컷이 좀 높아지겠군 생각은 했는데...
-
언어94 외국어77 수리51총점222하 수리.. 아쉽네요
-
언어94 외국어77 수리51222총점하 수리.. 아쉽네요
-
작년에는 육사 기준으로 240점대가 제일 많았고, 250 이상이면 오르비 표본...
-
언어 100 수리 97 외국어 83인데 ,,,,..합격여부 판단하고 점수좀 올려주세요
-
문.이과 점수는 둘째치고 난이도는 어떠셨나요?(사관학교) 2
난이도 차이를 확인해보면 작년 커트라인과 비교해 볼 수 있을 것 같은데 제...
-
작년 재수 할때는 222 올해가 삼수인데 278 육사 꼭 가고 싶네요
-
사실 합격해도 갈 생각은 없었는데 멘탈때문에(아쉬움이 남으니까) 1차는...
-
마음 편하게 먹고 시험보는데 영어 부터 멘붕옴 ..남자 이과 220 이면 광탈 예정이겠죠 .. ㅠ
-
나랑 인연이 없는갑다. ㅃㅃ
-
재수생임 작년에 218점이었는데 98 96 85 영어 다맞을수있었는데 시간 없어서...
-
4번이야 5번이야 으아아무한의 바다
-
오르비 돌아다니다보니 문과분들 점수가 이과분들점수 보다 많이 높네요::문과 잘하시는...
-
육남문 295육남문 294육남문 287육남문 286 육남문 285육남문 284육남문...
-
육사 문과 여자 인데요 한 번 쳐봤는데 거의 280 이 떴는데 이게 어느 정도인 지...
-
육사남문 표점고려하면 영어와 수학중 뭐가 더 중요할까요 3
전년도 난이도에 비해 영어가 더 어려워졌고 수학은 쉬워진 것 같은데 그래도 최상위를...
-
육사는 과락없죠? 과목별로 점수는 98 89 55인데 수학때메 광탈인가요??
-
공사 조종 문과 0
국어 100 수학 90 영어 81 우선선발 될까요ㅠㅠㅠㅠㅠㅠㅠ?
-
이번에 공사 우선선발 되고싶어했는데국96영91수85총272네요..... 원래...
-
사관학교 표본 조사중 29
육남문 294육남문 287육남문 286 육남문 285육남문 284육남문 278육남문...
-
여기지금표본이너무쌘거같은데..그래도 17대1에 4배수인데 6평 1등급이었는데...
-
국어 98 외국어 88 수학 83(이과) 인데요 누가 280점인데 떨어질까 물어보네요;;
-
사관학교 영어 23번 질문드립니다~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0
23번 2번째 줄에서 3번째 줄까지 "human knowledge and its...
-
287 점 남자요
-
이과고 총점은 243점인데 수학이 60점이 안되네요.. 광탈인가요??
-
공사정책 컷점수가얼마정도할까요??? 작년비교해서예상점수말해주세요...ㅋ
-
육사 문과컷 4
남자인데 262 힘들까요?
-
국어 24221 11231 55124 34454 52552 33525 13314...
-
영어답 맞춰 봅시다~ 39
일단 저 많이 틀린거 아니깐 욕하지 말아주세요 틀린거 있으면 댓글로 써주세요~4 4...
-
작년에 비해서 어떤거죠?
-
너어무 궁금한데 서로 눈치들만보셔서 제가 걍 총대맵니다 영어는 찍은게 너무 많으니...
-
전 3개 틀렸습니다. 415123341134 (본인 틀림 계산실수 ㅜ 답은...
-
수학이 발목 잡네요 ㅠㅠㅠ
-
친구랑 저랑 답이 다르네요 ㅋㅋ 답이 뭔가요??
-
공부 잘하시는 분들 답좀 올려주세요.... 참고로 이과..
-
악!!! 사관학교 이과 30번이 13이라니!!!! 11
으어어어어어어어 12이라고 썼는데 1을 생각치도 못했어요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
-
뭐죠? 궁금합니다..
-
여자 이과 정책 커트라인이 어느정도 되나요 ???
-
작년사관학교 찍어서맞춘한문제빼면84즉 4점4 개나갓는데요 90은넘어야 공사정책제외 합격권인가요?
-
해군사관학교를 준비하려는 현역이과인데요~ 1. 사관학교 자체시험 국영수 총점...
-
공사 들어가고 싶은 마음은 있는데 조종사 아니면 가기 싫은데요..문제는...
-
공사 조종 비염심하면 불합격인가요?그리고 내신 산출시에 정보, 체육 등등 비주요과목도 들어가나요?
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.