728x90

전체 글 100

#8 - 제어문 [매우 쉬움]

문제ab + ba = 154를 만족하는 (a, b)의 조합을 모두 구하는 프로그램을 작성하시오.(단, a, b는 10보다 작은 양의 정수이다.) ex ) 77+77=154 >> (7, 7)주요 아이디어ㅡ 식에 대한 선행 분석ㅡ 구해낸 조건에서 반복문 활용 주요 문법ㅡ for 반복문, if 조건문 a와 b가 각각 10보다 작은 양의 정수이기 때문에, 문제의 약속에 따라 ab는 10*a+b라고 나타낼 수 있다.ab + ba 를 정리하면 11*(a+b)이기 때문에 준식을 정리하면 a+b=14라는 조건을 얻을 수 있다.for문에서 a는 1부터 9까지만 진행되고, 그 안의 if문에서 14-a로 대표되는 b 또한 10 이상일 경우 출력을 하지 않게 된다. 실행 시간 : 약 1.1ms

카테고리 없음 2018.12.30

#6 - 제어문 [쉬움]

문제1부터 100까지의 하나의 난수를 발생하여 그 수를 맞추는 프로그램을 작성하시오. 1. 난수 발생반┌ 2. 난수 추측 │ 3. 추측한 수와 난수를 비교복└ 4. 범위 재설정 *이 문제에는 생각보다 많은 기본 개념이 활용된다.** 자세한 개념에 대해서는 이후 난수를 다루는 문제에서 나눠서 천천히 설명하겠다. 난수란 특정한 배열 순서나 규칙을 가지지 않는 임의의 수를 말한다. 하지만 컴퓨터가 생성한 난수는 대부분 엄밀한 의미에서 예측이 가능하고, 복사할 수 있기 때문에 특별히 모조(pseudo) 난수라 한다. C언어에서 난수를 생성하는 라이브러리 함수인 rand는 함수의 반환값이 int형이다. 인자 부분은 void인데 이것은 이 함수의 인자가 없다는 것을 의미한다. 함수 rand는 0부터 32767 사이..

카테고리 없음 2018.12.29

#5 - % 연산자 [쉬움]

문제1보다 큰 양의 정수를 입력받아 소수인지를 판별하는 프로그램을 작성하시오. ex) 입력한 23은 소수입니다. 소수의 정의는 1과 자기 자신을 제외한 나머지 수로 나누어서 나누어지지 않은 수를 말한다. * while문의 조건문으로 1은 'TRUE'를 의미하며, 항상 조건이 만족되어 break문을 진행하기 전까진 계속 while 반복문을 시행한다는 것이다.** if문으로 조건 (num > 1)을 걸어 1보다 큰 정수를 입력했을 때만 프로그램을 진행하고, 아닌 경우 오류 메세지를 출력하도록 할 수도 있다.*** k는 2부터 시작해서 num - 1가 될 때까지 계속 num에 % 연산자를 수행한다. 그 결과가 0이 되는 경우 바로 소수가 아님을 알 수 있다.**** 코딩은 전혀 어렵지 않지만, 수학적 개념에 ..

카테고리 없음 2018.12.29

#4 - 문자의 정렬 [쉬움]*

입력받은 문자를 배열에 저장하고 정렬하는 방법 문제영문자 3개를 입력받고, 이 중 알파벳 순서가 가장 먼저인 영문자를 출력하는 프로그램을 작성하시오. 우선 알파벳 순서를 비교하기 위해서는 ASCII 코드의 개념을 알아야 한다. http://www.unicode.org/charts/PDF/U0000.pdf 다음 링크의 표에 제시된 것처럼 각 문자는 그에 맞는 코드를 가지고 있다.사용자는 코드의 크기를 비교하는 것으로 문자의 순서를 비교할 수 있다.예를 들어, 알파벳 'a'와 'b'는 16진법으로 61, 62이므로 숫자가 더 작은 문자의 순서가 더 먼저임을 알 수 있다. 기본적으로 main함수에서 scanf문을 통해 3개의 문자열을 ch배열에 저장하는 것으로 시작한다.예를 들어, kor을 입력하면 ch[0]..

카테고리 없음 2018.12.28

#3 - switch [매우 쉬움]

switch 분기문의 활용 문제컴퓨터공학과 동계 캠프 경진대회의 상품이 다음과 같을 때,입력된 등수에 대해서 해당 등수의 상품을 출력하는 프로그램을 switch문을 이용해서 작성하시오. 1등 : 프린터, 컴퓨터, 상금, 상패2등 : 컴퓨터, 상금, 상패,3등 : 상금, 상패4등 : 상패그 외 : 없음 case문에서 break문을 사용하지 않으면 다음 case문까지 수행되는 점을 이용한다. 실행 시간 : 약 1.1ms

카테고리 없음 2018.12.27

#2 - Bubble sort [쉬움]

배열의 정렬과 제어문의 활용 문제세 변의 길이를 실수형으로 입력받아 삼각형의 종류를 출력하는 프로그램을 작성하시오.(단, 직각삼각형, 정삼각형, 이등변삼각형 이외의 삼각형은 모두 일반삼각형으로 칭하고, 삼각형을 만들 수 없는 경우도 고려해야 한다.) 삼각형이 될 수 없는 조건 : 한 변의 길이가 나머지 두 변의 길이의 합보다 길다.정삼각형의 조건 : 세 변의 길이가 모두 같다.직각삼각형의 조건 : 가장 긴 한 변의 길이의 제곱이 나머지 변 각각의 제곱의 합과 같다.이등변삼각형의 조건 : 어느 두 변의 길이가 서로 같다. main 함수를 통해 알 수 있듯이, 크게 세 함수를 거쳐 삼각형의 종류를 판별할 수 있다. 1. getArray 함수- 세 변의 길이(실수형)를 사용자로부터 입력받아 배열에 저장하는 함..

카테고리 없음 2018.12.25

#1 - % 연산자 [매우 쉬움]

문제연도를 입력받아 윤년인지 평년인지를 판별하는 프로그램을 작성하시오. 윤년의 정의 (그레고리력 기준)4로 나누어 떨어지는 해는 윤년, 그 밖의 해는 평년으로 한다.4로 나누어 떨어지지만 100으로 나누어 떨어지는 해는 평년으로 한다.단, 400으로 나누어 떨어지는 해는 윤년으로 한다.말이 복잡해보이지만 정리하면 꽤 간단하다.그냥 입력받은 연도가 400의 배수인지, 100의 배수인지, 4의 배수인지 순차적으로 조사하면 된다. 실행시간 : 약 1.1ms

카테고리 없음 2018.12.24

프로그래밍에 대한 생각

프로그래밍에 있어서 가장 중요한 것은 결과다. 결과적으로 목표를 충족하면서 현실적으로 실행 가능한 프로그램을 만드는 것이 언제나 최우선이 된다. 우선, 프로그램은 현실적으로 실행이 가능해야 존재 의의가 있다. 프로그램이 너무 복잡해서 처리 속도가 느리거나 메모리의 부하가 심할 경우, 이론적으로는 결과가 나와야 함에도 현실적으로는 불가능한 경우가 발생한다. 또한 실행이 된다고 하더라도, 프로그램 제작 목표는 만족함에 따라 점점 커져가기 마련이다. 때문에 프로그램은 이후의 발전을 위해 보수 및 개선 작업이 원활히 이루어질 수 있도록 구성되어야 한다. 예를 들어, C언어와 같은 절차 지향적 언어는 함수의 분할에 신경써야 한다. 함수는 최대한 간단히, 자주 반복되지만 반복문으로 대체될 수 없는, 의미상 원자성을..

Insight 2018.12.23

티스토리를 시작하면서

이 티스토리는 대학생으로서 공부한 내용들을 기록하기 위해 만들었다. 블로그를 운영하기로 결심한 것이 처음이기에 우선 최대한 쉽고 간단한 내용들을 다듬어 올릴 것이고, 포스팅 노하우를 터득해감에 따라 복잡하고 어려운 내용들도 게시할 예정이다. 닉네임 Nithen은 [네든]을 어떻게든 영어 이름으로 만들고자한 노력의 결과물이다. 원래 발음과 차이가 좀 있긴 하지만, 그래도 개인적으로는 만족한다. '네든'은 페이지 주소와도 연관이 있는 영어 SPEMS를 한글 타자로 옮긴 것인데, SPEMS의 뜻은 다음과 같다. Science Programming Economics Mathematics Statistics SPEMS는 내가 추구하는 목표들을 축약한 약어이다. 수학과 과학을 통해 생각하는 힘을 기르고, 경제학을 ..

Insight 2018.12.22
728x90