하찮은 19학번 컴공대생
yoonbot's devlog

전체 글 23

< BOJ Silver V > 1312 : 소수

1312번: 소수 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. www.acmicpc.net 1. 목적: 3 정수 a, b, n 입력 받아 a와 b의 몫을 구하고 소숫점 아래 n번째의 수를 출력하라 2. 해결책: 처음에 구한 a / b의 나머지 값을 n - 1 만큼 반복적으로 10을 곱하고 나오는 몫과 나머지를 구하면 n번째 소수를 구할 수 있다. 3. 소스코드: C언어 #include int main(){ int a, b, c, n; scanf("%d %d %d", &a, &b, &n); while (n--) a %= b, a *= 10, c = ..

< BOJ Bronze V > 1550 : 16진수

1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net 1. 목적: 16진수를 입력 받아서 10진수로 출력한다. 2. 해결책: 0. 보통 16진수를 10진수로 변환할 떄 16^n x (nth coefficient) + 16^(n - 1) x (n - 1th coefficient) ... + 16^0 x first coefficient) 식으로 계산한다. 참고로 first coefficient는 1자리의 수이다. 1. 한 변수는 입력 받을 16진수를 string 값으로 저장한다 2. 반복문을 16진수의 길이 값만큼 각 숫자를 내림..

< BOJ - Bronze V > 2475 : 검증수

2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net 목적: 5 정수들을 입력받아 각 수의 제곱을 더 해 구한 합을 10으로 나눠 나머지를 출력하라 해결책: 1. 반복문으로 입력을 받아 지정 변수에 입력의 제곱을 더한다. 2. 반복문이 종료된 후에 10으로 나눠 나머지를 구한다. 소스코드 1, C언어 #include int main() { int num, result = 0; for (int i = 0; i < 5; i++) { scanf("%d", &num); result = result + num * num;..

새 학기를 앞두고 뒷북 치는 2022년 목표

눈을 떠보니 어느새 2021년이 조금 아쉽게 허무하게 지나간 거 같다. 벌써 내 나이 23에 결국 이루어진게 몇 없어서 한탄스럽고 내 옆에 있는 친구들과 동기들에 비해 아무것도 이루어지지 않아서 현타가 오기도 했다. 그래도 2022년은 기분좋게(?) 시작되서 계속해서 앞으로 이룰 목표들을 입대하기 전에 최선을 다 하며 다 이룰 생각이다. 1. 계획적인 J 형으로 살자. 진짜 내가 지난 해에 느끼고 깨달았던게 나는 하루하루 계획을 세우지 않는 이상 무기력하는 하루를 살고 결국 시간이 지나도 내 자리는 그대로 라는 사실이다. 그래서 지난 2021년 해에 이루어진게 거의 한 개도 없다. 내 자신을 관리하기 위해서라도 항상 하루를 시작할 때 전날에 세운 계획을 이뤄야하고 하루를 마무리 할 때 다음날의 계획을 미..

< BOJ - Bronze V > 2338 : 긴자리 계산

2338번: 긴자리 계산 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미). www.acmicpc.net 요약: 정수 A와 B를 입력받아 두 수의 합, 차이, 곱을 구하라. **다만 정수 A, B 각각 1000자리 까지 길 수도 있다 (그럴 경우 곱이 오지게 김). 내가 틀린 점: 씨플플로 단순히 a + b, a - b, a * b 값을 출력했다. 하지만 깨달은게 그럴 경우 반드시 a, b를 string값으로 입력받아야 함. 물론 string값으로 입출력 할 수 있지만 더 간단한 2줄짜리 파이썬 코드가 더 효율적이라고 생각한다. 모범 답안: a = int(input(..

< BOJ - Bronze V > 1550 : 16진수

1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net 요약: 16진수 캐릭터를 입력 받고 이진수 값을 출력하라. 내가 틀린 점: 입력을 받을시 string() 값으로 받았지만 0~9일시 - '0' 를 뺴는 걸 생각 못 했고 입력이 A~F일시 - 'A' 를 뺴는 걸 생각 못 함. 모범 답안: #include #include using namespace std; int main(){ int temp = 1, result = 0; string input; cin >> input; for (int i = input.length() -..

< BOJ - Bronze V > 1271

1271번: 엄청난 부자2 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) www.acmicpc.net 요약: 두 정수 a와 b를 나눠서 몫과 나머지를 출력하라. 내가 틀린 점: 씨플플로 % modulus 기호 응용했는데 runtime error division by zero 에러가 발생했다. 결국 이건 씨플플 언어랑 다른 객체 언어의 빌드 차이, 특성 차이인거 같다. 보니까 씨플플의 대부분 모범 답안들은 벡터와 다른 클래스들을 응용했고 너무 복잡하고 길다. 하지만 우리는 빠른 시간 내에 더 많은 문제들을 풀기 위해 짧은 코드일 수록 더 좋다. 따라서 결국 2줄 짜리 파이썬 코드를 모범 답안으로 정했다...

[Linux From Scratch 01] - Introduction

만약 나처럼 비정상인 컴공대생이고 자기 만의 무언가를 만드는걸 즐기는 사람이라면 당신도 자기 만의 웹사이트, 디코봇, 등 자기 자신만 사용할 수 있는 시스템이던지 어플이던지 설계 도전을 해봤을 것이다. 이제 가끔씩 영화 장면들중에 해킹 씬들이 있었는데 다 자기만의 리눅스, 혹은 업체에서 공개하지 않은 리눅스 시스템/디스트로 를 사용한다 대부분. 그래서 나도 내 자신만의 리눅스 시스템/디스트로를 구현하고자 하는 도전을 받았다. 자시만의 리눅스 시스템을 개발하는 과정에 대한 장점들과 단점들을 간략히 소개하겠다. 장점 1. 당신이 왕이다. 자시만의 리눅스 시스템을 구현하기 때문에 커스터마이징의 맥스라고 보면된다. 당신이 원하는 패키지만 설치하고 쓸데없는 다른 패키지들은 설치 안 되어있다. 물론 아무것도 설치 ..

[프로젝트 #0] 핀토스 설치하기

**아래 글은 개인 우분투 환경에서 핀토스를 설치하는것이 아닌, 조교님이 관리하고 베푸해주신 터미널로 핀토스를 실행했다.** 대학교 컴퓨터공학 과정을 들으면서 1학년때는 기본 씨언어 프로그래밍 및 이산수학, 2~3학년때는 자료구조 및 알고리즘들, 그리고 그 범위에 마춘 실험 과목들, 이제 3~4학년쯤되면 본인은 컴퓨터가 프로그램이 실행하면 무엇을 하는지 대충 조금이라도 알 것이다 (프로세서가 반복적으로 instruction/명령을 메모리에서 갖고 오고 명령어를 해독하고 그리고 명령을 실행한다). 예를들면, 컴퓨터가 반복적으로 두 수들을 더하고 메모리에 접속하고 컨디션을 확인하고 다른 함수로 점프하고 등등. 위와 같은 과정들을 초마다 몇 억씩 반복된다고 생각하면 된다. 3~4학년 쯤 되면 위와 같은 상황들..

2021 -02학기를 시작하며

이제 진짜 담 학기에는 4학년이다. 아주 ㅈ됐다. 아직 이수해야할 과목들은 아마 5개 이상일예정이고 재수강 해야할 과목들은 5개 이하일 것이다. 특히 이번학기 컴퓨터공학 실험2 실험과목 수강 정원이 도달해서 결국 실험 과목을 담지 못해, 큰 마음 먹고 운영체제 과목을 담게 됐다. 시스템 프로그래밍 과목을 들어본 적이 없는 나에게는 운영체제 수업을 수강하는게 어쩌면 가장 큰 실수이지 않을까 싶다. 진짜 말 그대로 선배들이 랩실, 동방에서 썩어가는 모습들을 보며 내 미래구나 하며 불안감에 떨다가 체념하는 스테이지로 간다. 어차피 들어야 할 거 최선을 다 해보자 하면서. 그래서 결론적으로 운영체제 과목을 단 1퍼라도 더 쉽게 들을려면 이번 주 내에 시스템 프로그래밍을 반드시 배워야 한다. 하지만 시스템 프로그..