프로그래밍
[C언어] 백준 1011. Fly me to the Alpha Centauri
문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 ..
[파이썬] 백준 9020. 골드바흐의 추측
문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수..
[c언어] 백준 10757. 큰 수 A + B
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A,B strlen(B) ? strlen(A) : strlen(B); 이제 len만큼 각 자릿수를 더한다. 각 자리에는 0~9가 char로 저장되어 있다. 이 문자를 먼저 숫자로 변환해야 한다. 숫자 0의 아스키 코드는 48이다. 각 자리에 48을 빼고 int형으로 저장하면 문자를 숫자로 바꿀 수 있다. 문자끼리 뺄셈을 해도 같은 결과이다. 예를 들어 A - C는 -2이다. 여기에 받아올림이 발생하면 1을 더해줘야 하므로 carry값도 함께 더한다. int sum = A[i] - '0' + B[i] - '0' + carry; 두 숫자의 덧셈이니 받아올림하는 수는 최대 1이다. ..
[파이썬] 백준 5622. 다이얼
문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 ..
[C언어] 백준 3009. 네 번째 점
문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 구상 $x_{1}$과$x_{2}$가 같으면 $x_{4}$는 $x_{3}$와 같다. $x_{1}$과 $x_{3}$가 같으면 $x_{4}$는 $x_{2}$와 같다. 아니면 $x_{4}$는 $x_{1}$와 같다. $y$도 마찬가지다. 코드 #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int xArr[4], yArr[4];//좌표를 저장할 배열 for (int i = 0; i < ..
<명품 JAVA Programming> - Chapter10 실습문제
1. JLabel 컴포넌트는 Mouse 이벤트를 받을 수 있다. JLabel 컴포넌트에 마우스를 올리면 "Love Java"가, 내리면 "사랑해"가 출력되도록 스윙 응용프로그램을 작성하라. package chapter10; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Q1 extends JFrame{ private JLabel la = new JLabel("사랑해"); public Q1() { setTitle("마우스 올리기 내리기"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new F..
<명품 JAVA Programming> - Chapter9 실습문제
1. 다음 그림과 같이 ""Let's study Java"라는 문자열을 타이틀로 가지고 프레임의 크기가 400X200인 스윙 프로그램을 작성하라. package chapter9; import javax.swing.*; public class Q1 extends JFrame{ public Q1() { setTitle("Let's study Java"); setSize(400, 200); setVisible(true); } public static void main(String[] args) { new Q1(); } } 2. BorderLayout을 사용하여 컴포넌트 사이의 수평 수직 간격이 각각 5픽셀, 7픽셀이 되도록 스윙 응용프로그램을 작성하라. package chapter9; import javax...
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 11(1번~10번)
1. 구조체 템플릿 정의와 구조체 변수 선언의 차이를 설명하시오. 구조체 템플릿은 사용자 정의 자료형을 만드는 것이다. 구조체를 위한 기억 장소를 할당받기 위해서는 구조체 변수를 선언해야 한다. 2. 다음 코드는 두 사각형 중 면적이 큰 사각형의 가로, 세로, 면적 정보를 larger에 구하는 프로그램이다. 밑줄 친 곳에서 잘못된 것을 찾아 그 이유를 설명하시오. struct rectangle { int width = 5, height = 2, area;//구조체 템플릿을 정의할 때 변수 내용을 초기화할 수 없음 } int main() { rectangle r1 = { 3, 7 }, r2 = { 2, 5 };//구조체임을 명시해야 함 int larger;//구조체로 정의해야 함 r1.area = r1.w..