본문 바로가기

전체 글

(166)
Perfect C 6장 프로그래밍 연습 10번, 윤년 구하기 IF 구문을 통해서 윤년과 평년을 구분하는 문제입니다. 윤년과 평년의 정의는 문제에 제시되어 있습니다. 저는 위키백과의 지식을 빌려오도록 하겠습니다. 1, 2, 3번을 각각의 조건이라고 생각하면 해결하기 쉬울 것입니다. ''' 만약 A년이 4로 나누어 떨어지면 '일단'은 윤년입니다. 그리고 그 A년이 100으로도 나누어 떨어진다면 A년은 윤년이 아닌 평년이 될 수도 있다는 뜻입니다. 마지막으로 A년을 400으로도 나누어 보았는데 떨어졌다. 그럼 그건 '확실히' 윤년입니다. ''' 이런 순서를 위해서는 IF 구문을 중첩하여 사용하는 것이 좋습니다. 처음 IF로 A년이 4로 나누어 떨어지는지 아닌지 구분합니다. 나머지가 0이면 윤년의 가능성이 있는 것이며 0이 아니면 모두 평년이 됩니다. 처음 IF 안에 새..
Perfect C 6장 프로그래밍 연습 2, 3, 7번 + BMI 프로그램 Perfect C 6장 프로그래밍 연습은 여러 블로깅으로 정리했습니다. 1번 문제에 대한 참고가 필요하시면 아래의 블로깅을 확인하시면 됩니다. 2020/04/21 - [작업/C 언어] - C언어 평면의 사분면 조건문으로 만들어 보기 C언어 평면의 사분면 조건문으로 만들어 보기 Perfect C 도서의 6장은 조건 문법에 대해 소개하고 있습니다. 프로그래밍 연습 1번 문제에서 각도에 맞는 평면의 사분면 값을 출력하라고 했습니다. 이 문제를 통해 6장에서 배운 조건을 모두 활용해서 코딩을 해.. zifmfmphantom.tistory.com 이번 글에는 2, 3, 7번에 대한 코딩을 해보았습니다. 그리고 현역 판정 기준을 적용해서 BMI 프로그램을 만들어 보았습니다. 재미로 활용해 보시면 좋을 것 같습니다 ..
C언어 평면의 사분면 조건문으로 만들어 보기 Perfect C 도서의 6장은 조건 문법에 대해 소개하고 있습니다. 프로그래밍 연습 1번 문제에서 각도에 맞는 평면의 사분면 값을 출력하라고 했습니다. 이 문제를 통해 6장에서 배운 조건을 모두 활용해서 코딩을 해보았습니다. if, else if, switch case 문장을 모두 사용했으며 문제 풀이보다는 조건문을 어떻게 사용할지에 대해 중점으로 적었습니다. 시작으로 어떻게 코드를 구성했는지 알고리즘을 소개하고, 실제 코드와 함께 다시 부연 설명하는 식으로 블로깅 하겠습니다. 문 제 0~360도의 평면 사분면 값을 출력 ( 125도 = 2사분면 ) 0도는 '양의 X축' 90도는 '양의 Y축' 180도는 '음의 X축' 270도는 '음의 Y축' 출력 알 고 리 즘 설 계 1. 우선 표준 입력의 범위를 정..
Perfect C 프로그래밍 연습 5장 해결 5장은 연산자들의 종류와 다루는 방법에 대해 정리되어 있습니다. 연산을 다루는 만큼 문제 구성도 계산식을 활용하는 것이 많았습니다. 4, 5번 문제는 반지름 7.58을 표준 입력으로 받았고, 지시하는 계산식을 적용했습니다. π는 3.14로 정해서 계산식에 대입하였습니다. 주어진 식을 출력에 활용만 하면 되는 간단한 문제였습니다. 6번 문제는 계산을 하고 그 결괏값이 어떻게 되는지 생각해 보아야 하는 문제입니다. 나누기(/)와 나머지(%) 연산을 활용하게 되는데 / 연산은 몫이 나오며, % 연산은 나머지가 나온다는 것을 생각해야 합니다. 계산을 따라오면 주석 처리한 값이 나온다는 것을 확인할 수 있습니다. 아래 코딩 내용에서 'nume'는 활용되지 않았기 때문에 없어도 무관한 변수입니다. 10, 11번은 ..
Perfect C 프로그래밍 연습 4장 해결 안녕하세요. 천보기입니다. 3장 문제 풀이를 하면서 자릿수 맞추는 것을 슬쩍 적용했습니다. 그런데 4장에 그것에 대한 설명이 기술되어 있더군요...! 거의 선수학습;; 4장의 주 내용은 자릿수 맞추는 방법과 printf(), scanf() 함수에 대한 문법입니다. 문제 구성도 그것에 초점이 맞추어져 있어서 풀이 방식이 다 비슷합니다. 그래서 몇 개만 풀어보고 넘어갔습니다 ㅎㅎ... 문제 풀이 1번 문제는 이번 장의 핵심을 잘 이해했는지 확인하는 문제입니다. 정수를 기준으로 기본적인 형식 지정자는 %d 입니다. 여기서 자릿수(출력의 폭)를 지정하기 위해선 %와 d 사이에 값을 삽입합니다. ex) 5자리의 폭을 가지는 정수형 = %5d 기본은 우측 정렬로 출력이 되며 좌측 정렬로 출력하려면 음수 값(%-5d..
Perfect C 프로그래밍 연습 2, 3장 해결 안녕하세요. 천보기입니다. 코로나에 의해 사이버 강의로 하루하루를 보내고 있습니다. 공부를 하면서 프로그래밍 언어에 대해 무지해진 것 같은 느낌이 많이 들어서 C언어를 공부하며 블로깅을 시작했습니다. 이전에 공부했던 Perfect C를 다시 소환하였고, 정리할 겸 글을 적었습니다. 모든 문제와 풀이를 적으면 큰 작업이 될 것이라 생각하여 문제 글을 생략하고 답도 부분만 적었습니다. 2장 문제 풀이 교재의 2장은 간단하게 출력하는 방법에 대해 기술되었습니다. 교재의 3장은 코딩할 때 자주 실수하는 문법에 대해, 사용되는 자료형에 대해 기술되었습니다. 2장 프로그래밍 문제는 간단해서 몇 개 안 했습니다. (1-1, 2-1, 4번 문제) 문제 의도는 printf() 함수와 그 안에 문장 삽입을 정확히 하는지 ..
다이소 자전거 청소용품으로 세차 안녕하세요. 천보기입니다. 군대 들어가기 전에 대학교 기숙사에 자전거를 봉인했습니다. 복학하고 다시 타려고 오늘 청소를 하러 갔습니다. 다행히 누군가가 건드린 흔적은 없었어요. 2년 동안 묵힌 때 오늘 다 없애줄게... ㅠㅇㅠ 자전거 청소용품을 근처 다이소에서 팔고 있었어요. 자전거 프레임 청소제, 체인 청소제, 윤활 방청제(그리스) 역시 다이소인가... 겉을 닦을 마른 행주도 같이 구매했습니다. 체인이 돌아가는 곳 구석에 묵힌 꽃가루와 거미집... 타이어에는 먼지들이 가득 붙어있었어요..ㅠㅠ 우선 물티슈로 큰 먼지들이랑 거미줄부터 제거했습니다. 이후에 체인 청소제를 체인이 돌아가는 길에 모두 뿌려주었습니다. 뿌리고 3분 정도 기다리면 체인링 부분에 찌든물이 떨어집니다. 이후에 물티슈로 박박 비볐습니다...
iptime 공유기 연결 문제 해결 (외부 IP, 내부 IP) 안녕하세요. 천보기입니다. 대학생분들 방학 중에 방 구하시고 입주까지 하시게 되는데요 풀옵션 방에 입주하시게 되면 공유기도 옵션에 포함되어 있더군요 보통은 iptime 제조사의 공유기를 사용하시게 됩니다. 인터넷이 연결된 선을 꼽으면 바로 될 줄 알았던 공유기... 하지만 마음 아프게 정상적으로 되지 않는 경우가 발생하게 됩니다. IP 설정이 제대로 되어 있지 않으면 연결이 되지 않는 오류에 대해, 그리고 해결하는 방법에 대해 공유하고자 합니다. 문제 이해 먼저 입주를 201호 -> 나 -> 301호 순으로 했다고 가정합니다. 모두는 iptime의 공유기를 사용하며 동적 IP를 할당받습니다. DHCP라고 하며 자동으로 IP를 제공받아 사용하는 기능입니다. 201호는 192.168.0.1의 공유기 내부 I..
USB 부팅 디스크 만들기 (윈도우 운영체제) 안녕하세요. 천보기입니다. 사용하고 있던 PC의 운영체제에 문제가 생길 경우 정상적인 부팅이 되지 않거나, 블루스크린으로 인해 작동을 시킬 수 없는 상태가 발생합니다. 이를 해결하기 위해 운영체제를 재설치하는 작업이 있습니다. 외장 메모리 (USB 또는 외장 하드)에 운영체제를 저장시키고 이를 복구하고자 하는 PC에 연결하면 됩니다. 외장 메모리에 운영체제(windows 시리즈 또는 다른 운영체제)를 저장하는 방법입니다. 준비 - 운영체제 iso 파일, 적절한 용량(넉넉히 8GB 이상)의 메모리 장치 1. 운영체제 iso 파일 구하기 매우 다양한 방법이 있습니다. 저는 windows 8.1 K로 부팅디스크를 만들어 보려고 합니다. 해당 운영체제의 iso파일은 microsoft에서 제공하고 있으며 제품키가..
외장 메모리 용량 복구하기 (USB, 외장 하드) 안녕하세요. 천보기입니다. 1TB 용량의 외장 하드 드라이브가 있었습니다. 그런데 작업하다가 오류가 생겼는지 PC에 연결해도 정보가 뜨질 않는 겁니다. ㅠㅠ 그래서 이번에 데이터를 잃게 되더라도 복구를 하기로 했습니다. 내 PC 정보에 외장 하드가 인식이 되지 않아 cmd에서 디스크 파티션을 확인하는 명령을 사용했습니다. 1. 명령 프롬프트 (윈도우에서 cmd 또는 명령 프롬프트 검색)를 실행합니다. 2. diskpart 입력 diskpart는 디스크 관리를 시작하는 명령입니다. (파티션 분할 작업) 3. list disk 입력 파티션(디스크) 정보를 출력해 줍니다. 디스크 1이 1TB 외장 하드이며 사용 가능 용량이 없음을 확인 4. sel disk [디스크 번호] 입력 디스크를 지정하는 명령입니다. ..
백준 1011번(Fly me to the...) 파이썬(python)으로 해결 특정한 거리를 몇 번의 횟수로 도달할 수 있는지 물어보는 문제입니다. 조건 처음 시작할 때와 마지막에 도착하기 전에는 반드시 1의 거리만 움직일 수 있다. 이전에 k만큼 움직였다면 이후에는 k-1, k, k+1의 범위에서만 움직일 수 있다. 접근 먼저 표를 만들어 보고 어떤 규칙이 있는지 확인하였습니다. 1~3의 거리는 특별한 규칙이 없어도 가능해서 버려두었습니다. 중요시 보아야 할 것은 제곱수의 거리(4, 9, 16)입니다. 제곱수를 기준으로 거리들을 나누었습니다. (4, 5, 6, 7, 8), (9, 10, 11, 12, 13, 14, 15) 작동 횟수가 증가하는 구간은 거리가 5일 때 (횟수 = 4) 거리가 7일 때 (횟수 = 5) 거리가 10일 때 (횟수 = 6) 거리가 13일 때 (횟수 = 7)..
백준 1010번(다리 놓기) 파이썬(python)으로 해결 백준 1010번은 경우의 수를 구하는 방법입니다. 이는 수학의 힘을 빌려 공식을 쉽게 알아낼 수 있었습니다. 조건 서쪽(N)과 동쪽(M)의 사이트 개수가 같으면 경우의 수가 1이다. (사이트의 중복이 허용되지 않기 때문) N의 값은 M의 값보다 크면 안 된다. 첫 입력은 경우의 수를 만들 케이스의 개수 다음 입력부터 경우의 수를 만들 N, M값 입력 출력은 경우의 수 과정을 한 번 생각해 보도록 하겠습니다. 순열 예시 수학에서 흔히 예로 드는 것은 전체 학생 수에서 임원을 뽑는 경우의 수입니다. 전체 학생수 (M) = 4 반장 1명 부반장 1명 (N) =2 반장과 부반장은 역할이 다르기에 같은 분류라고 할 수 없습니다. 즉 각각의 인원이 반장이 될 경우와 부반장이 될 경우가 상이하다는 뜻이며 이는 순서에..