'Problems'에 해당되는 글 65건
- 2020.04.23 Triangle
- 2020.04.23 Study
- 2020.04.23 Addition
- 2020.04.23 Condition1
- 2020.04.23 Condition2
- 2020.04.22 RotationArray
- 2020.04.22 Ranking
- 2020.04.22 AlphabetTriangle
- 2020.04.22 Diamond
- 2020.04.22 RankSurvival
- 2020.04.22 InputFrequency
- 2020.04.22 PrimeNumber
- 2020.04.22 Combination
- 2020.04.22 AmicableNumber
- 2020.04.22 PerfectNumber
- 2020.04.22 Fibonacci
- 2020.04.22 Factorial
- 2020.04.22 DancingSnake
- 2020.04.22 AbundantNumber
- 2020.04.22 Power
- 2020.04.22 StackArray
- 2020.04.22 SelfCloning
- 2020.04.22 TruthTable 2
- 2020.04.22 PowerSet
- 2020.04.22 AlphabeticalySort
- 2020.04.22 3nPlus1
- 2020.04.22 DigitalSum
- 2020.04.22 Binary
- 2020.04.22 Sign
- 2020.04.22 Baseball
① a*a + b*b = c*c
② a < b < c
③ 1 = a, b, c <= 100
OUTPUT
a= 3 b= 4 c= 5
a= 5 b= 12 c= 13
a= 6 b= 8 c= 10
a= 7 b= 24 c= 25
a= 8 b= 15 c= 17
a= 9 b= 12 c= 15
a= 9 b= 40 c= 41
a= 10 b= 24 c= 26
a= 11 b= 60 c= 61
a= 12 b= 16 c= 20
a= 12 b= 35 c= 37
a= 13 b= 84 c= 85
a= 14 b= 48 c= 50
a= 15 b= 20 c= 25
a= 15 b= 36 c= 39
a= 16 b= 30 c= 34
a= 16 b= 63 c= 65
a= 18 b= 24 c= 30
a= 18 b= 80 c= 82
a= 20 b= 21 c= 29
a= 20 b= 48 c= 52
a= 21 b= 28 c= 35
a= 21 b= 72 c= 75
a= 24 b= 32 c= 40
a= 24 b= 45 c= 51
a= 24 b= 70 c= 74
a= 25 b= 60 c= 65
a= 27 b= 36 c= 45
a= 28 b= 45 c= 53
a= 28 b= 96 c=100
a= 30 b= 40 c= 50
a= 30 b= 72 c= 78
a= 32 b= 60 c= 68
a= 33 b= 44 c= 55
a= 33 b= 56 c= 65
a= 35 b= 84 c= 91
a= 36 b= 48 c= 60
a= 36 b= 77 c= 85
a= 39 b= 52 c= 65
a= 39 b= 80 c= 89
a= 40 b= 42 c= 58
a= 40 b= 75 c= 85
a= 42 b= 56 c= 70
a= 45 b= 60 c= 75
a= 48 b= 55 c= 73
a= 48 b= 64 c= 80
a= 51 b= 68 c= 85
a= 54 b= 72 c= 90
a= 57 b= 76 c= 95
a= 60 b= 63 c= 87
a= 60 b= 80 c=100
a= 65 b= 72 c= 97
결과물의 총 라인수가 되는 정수를 입력 받습니다.
알파벳을 삼각형 모양으로 출력하게 되는데
첫 번재 행은 A, 두번째 행은 BC, 세번째 행은 CDE, ...와 같은 방식으로 라인수 만큼 진행하게 됩니다.
Z까지 출력된 후에도 다시 A부터 출력되록 코딩해주세요.
INPUT
20
OUTPUT
A
BC
CDE
DEFG
EFGHI
FGHIJK
GHIJKLM
HIJKLMNO
IJKLMNOPQ
JKLMNOPQRS
KLMNOPQRSTU
LMNOPQRSTUVW
MNOPQRSTUVWXY
NOPQRSTUVWXYZA
OPQRSTUVWXYZABC
PQRSTUVWXYZABCDE
QRSTUVWXYZABCDEFG
RSTUVWXYZABCDEFGHI
STUVWXYZABCDEFGHIJK
TUVWXYZABCDEFGHIJKLM
0부터 999까지 숫자 100개를 램덤으로 받아 배열에 저장한 후 화면에 한줄에 10개씩 출력합니다.
그리고 100개의 숫자 중 가장 큰 수부터 차례로 5개를 골라내어 순서대로 다시 출력하세요.
OUTPUT
312 287 930 154 820 473 329 556 923 983
94 874 792 425 816 92 952 757 453 227
1 644 506 493 740 124 748 703 903 703
175 395 733 380 261 507 898 349 105 84
986 793 757 566 617 514 41 555 825 745
212 798 215 40 239 126 238 121 808 75
217 46 389 81 507 569 619 682 329 532
853 81 546 611 560 476 86 785 543 465
501 640 506 997 617 101 356 784 671 843
965 357 578 455 637 665 369 300 779 778
997 986 983 965 952
키보드로 문자나 숫자를 입력 받아 각각의 입력된 값의 총 개수와 확률을 출력하는 문제입니다.
예)
입력을 abcabc123로 했을경우.
출력형식
입력값(개수) : 개수를 *(asterisk)로 표현 Prob=확률값
abcabc123
a(2) : ** Prob = 22.222222
b(2) : ** Prob = 22.222222
c(2) : ** Prob = 22.222222
1(1) : * Prob = 11.111111
2(1) : * Prob = 11.111111
3(1) : * Prob = 11.111111
INPUT
Copy & Paste 2007.05.05
OUTPUT
C( 1) : * Prob = 4.347826
o( 1) : * Prob = 4.347826
p( 1) : * Prob = 4.347826
y( 1) : * Prob = 4.347826
( 3) : *** Prob = 13.043478
&( 1) : * Prob = 4.347826
P( 1) : * Prob = 4.347826
a( 1) : * Prob = 4.347826
s( 1) : * Prob = 4.347826
t( 1) : * Prob = 4.347826
e( 1) : * Prob = 4.347826
2( 1) : * Prob = 4.347826
0( 4) : **** Prob = 17.391304
7( 1) : * Prob = 4.347826
.( 2) : ** Prob = 8.695652
5( 2) : ** Prob = 8.695652
조합론에서 조합(Combination)은 집합에서 일부 원소를 취해 부분집합을 만드는 것을 말합니다.
n개의 원소를 가지는 집합에서 k개의 부분집합을 고르는 조합의 경우의 수는 이항계수라고 합니다.
다음과 같이 정의합니다.
nCk = n! / k!*(n-k)! ( n>=k>=0 )
nCk = 0 (k<0 or k>n)
예를 들어, 10C3 = 10!/3!*7! = 10*9*8/3*2*1 = 120입니다.
정수 n과 k를 입력받아 조합의 경우수를 구하세요. (n과 k는 빈칸으로 구분합니다.)
INPUT
10 5
5 2
OUTPUT
252
10
친화수 [親和數, amicable number]
두 수의 쌍이 있어, 어느 한 수의 진약수를 모두 더하면 다른 수가 되는 것을 말합니다.
220과 284의 쌍이 그 예인데 220의 진약수는 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110로 모두 더하면 284가 됩니다.
반대로 284의 모든 진약수 1, 2, 4, 71, 142를 모두 더하면 220이 됩니다.
친화수의 쌍이 유한한지 무한한지는 알려져 있지 않으며 현재까지 알려진 친화수는 둘 다 짝수이거나
둘 다 홀수인 경우 뿐입니다. 참고로 짝수와 홀수로 이뤄진 친화수가 존재하는지는 알려져있지 않습니다.
또한 알려진 친화수는 서로 공통의 약수를 가집니다.
서로소인 친화수가 존재하는지는 알려져있지 않으나, 최소한 그 곱이 1067보다는 커야 합니다.
ex)220,284/1184,1210/2620,2924
10000 이하의 양의 자연수에서 친화수가 되는 쌍을 찾는 프로그램을 작성하세요.
OUTPUT
220 284
1184 1210
2620 2924
5020 5564
6232 6368
정수 값 n을 입력받아 마치 뱀의 모양처럼 지그재그로 숫자를 n*n 사이즈 만큼 출력하는 프로그램을 작성하세요.
숫자의 범위는 1부터 n^2까지가 됩니다.
INPUT
10
OUTPUT
1 2 3 4 5 6 7 8 9 10
20 19 18 17 16 15 14 13 12 11
21 22 23 24 25 26 27 28 29 30
40 39 38 37 36 35 34 33 32 31
41 42 43 44 45 46 47 48 49 50
60 59 58 57 56 55 54 53 52 51
61 62 63 64 65 66 67 68 69 70
80 79 78 77 76 75 74 73 72 71
81 82 83 84 85 86 87 88 89 90
100 99 98 97 96 95 94 93 92 91
스택이란 여러 개의 데이타 항목들이 일정한 순서로 나열된 자료 구조로,
한쪽 끝에서만 새로운 항목을 삽입하거나 기존 항목을 삭제할 수 있도록 고안된 것입니다.
스택은 동전을 넣고 뺄 수 있도록 되어 있는 동전 케이스와 같은 작동 원리를 가지고 있는데
삽입된 동전들은 케이스 내부에 일정한 순서로 저장됩니다.
먼저 삽입된 동전은 케이스의 가장 아래쪽에 위치하고 가장 최근에 삽입된 동전은 입구에 놓입니다.
그래서 스택을 후입 선출 리스트(Last- In-First-Out List)라고 부릅니다.
선입 선출법(FIFO)을 사용하는 큐와는 상반된 성질을 가집니다.
자연수를 저장할수 있는 배열로 스택을 구현하며, 최대 사이즈는 10입니다.
아래 OUTPUT과 같은 형식으로 구현하세요. (구현해야 할 함수 :push, pop, stackview)
OUTPUT
push(1) pop(2) stackview(3) : 2
stack underflow...
push(1) pop(2) stackview(3) : 1
input number : 1
push : 1
push(1) pop(2) stackview(3) : 1
input number : 2
push : 2
push(1) pop(2) stackview(3) : 1
input number : 3
push : 3
push(1) pop(2) stackview(3) : 1
input number : 4
push : 4
push(1) pop(2) stackview(3) : 1
input number : 5
push : 5
push(1) pop(2) stackview(3) : 1
input number : 6
push : 6
push(1) pop(2) stackview(3) : 1
input number : 7
push : 7
push(1) pop(2) stackview(3) : 1
input number : 8
push : 8
push(1) pop(2) stackview(3) : 1
input number : 9
push : 9
push(1) pop(2) stackview(3) : 1
input number : 10
push : 10
push(1) pop(2) stackview(3) : 1
input number : 11
stack overflow...
push(1) pop(2) stackview(3) : 2
pop : 10
push(1) pop(2) stackview(3) : 3
stack[8] = 9
stack[7] = 8
stack[6] = 7
stack[5] = 6
stack[4] = 5
stack[3] = 4
stack[2] = 3
stack[1] = 2
stack[0] = 1
push(1) pop(2) stackview(3) :
진리표 [truth table]
진리표는 진리식 및 논리 회로에 대한 모든 입출력 결과를 기록하는 표입니다.
n개의 부울(bool) 변수를 가지고 모든 가능한 진리값의 조합을 출력합니다.
진리값의 조합을 출력할때마다 Counter을 함께 출력해야 하며, 0을 입력할 경우 종료합니다.
(각각의 입력에 대한 출력은 한개의 빈줄로 구분합니다.)
INPUT
4
3
0
OUTPUT
1: T T T T
2: T T T F
3: T T F T
4: T T F F
5: T F T T
6: T F T F
7: T F F T
8: T F F F
9: F T T T
10: F T T F
11: F T F T
12: F T F F
13: F F T T
14: F F T F
15: F F F T
16: F F F F
1: T T T
2: T T F
3: T F T
4: T F F
5: F T T
6: F T F
7: F F T
8: F F F
멱집합 [power set]
멱집합이란 주어진 집합의 모든 부분집합의 집합을 말합니다.
집합 M={A, B, C}의 멱집합을 예로들면, {{A,B,C}, {A,B}, {A,C}, {B,C}, {A}, {B}, {C}, ø }가 되구요.
M이 n개의 원소로 이루어진 유한집합이면 M의 멱집합은 2^n개인 원소를 가집니다.
집합 M은 중복되지 않는 알파벳으로 이루어져 있으며 집합 M의 원소의 개수를 입력받아
그에 해당하는 멱집합을 생성하여 줄번호와 함께 출력하고 끝에는 멱집합 원소의 개수를 출력합니다.
INPUT
4
OUTPUT
1 : {}
2 : { A }
3 : { B }
4 : { A B }
5 : { C }
6 : { A C }
7 : { B C }
8 : { A B C }
9 : { D }
10 : { A D }
11 : { B D }
12 : { A B D }
13 : { C D }
14 : { A C D }
15 : { B C D }
16 : { A B C D }
counter : 16
[알고리즘 트레이닝북 문제]
어떤 정수 n이 짝수면 2로 나누고 홀수면 3을 곱한후 1을 더하여 n=1 될때까지 같은 작업을 반복합니다.
(아직 증명되지는 않았지만 모든 정수 n에 대해 이 알고리즘을 적용시키면 n=1에 이르게 된다고 추측하고 있습니다.
그리고 이 가설은 적어도 1,000,000까지의 정수에 대해서는 참입니다.)
정수값 n으로 부터 1되기까지 만들어진 수의 개수를 n의 사이클 길이(cycle-length)라고 합니다.
예) n=22
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
cycle-length : 16
입력값은 a와 b사이의 정수 중에서 사이클 길이가 가장 큰 정수를 구해 출력하고 1이 되기까지의 과정과
사이클 길이를 출력합니다. (사이클 길이가 똑같은 수가 있다면 작은 수를 출력)
INPUT
1500
2000
OUTPUT
Number : 1665
Cycle-length : 180
1665 4996 2498 1249 3748 1874 937 2812 1406 703
2110 1055 3166 1583 4750 2375 7126 3563 10690 5345
16036 8018 4009 12028 6014 3007 9022 4511 13534 6767
20302 10151 30454 15227 45682 22841 68524 34262 17131 51394
25697 77092 38546 19273 57820 28910 14455 43366 21683 65050
32525 97576 48788 24394 12197 36592 18296 9148 4574 2287
6862 3431 10294 5147 15442 7721 23164 11582 5791 17374
8687 26062 13031 39094 19547 58642 29321 87964 43982 21991
65974 32987 98962 49481 148444 74222 37111 111334 55667 167002
83501 250504 125252 62626 31313 93940 46970 23485 70456 35228
17614 8807 26422 13211 39634 19817 59452 29726 14863 44590
22295 66886 33443 100330 50165 150496 75248 37624 18812 9406
4703 14110 7055 21166 10583 31750 15875 47626 23813 71440
35720 17860 8930 4465 13396 6698 3349 10048 5024 2512
1256 628 314 157 472 236 118 59 178 89
268 134 67 202 101 304 152 76 38 19
58 29 88 44 22 11 34 17 52 26
13 40 20 10 5 16 8 4 2 1
1부터 9사이의 숫자 3개를 사용자가 입력하여 컴퓨터가 랜덤으로 정의한 숫자 3개를 맞추는 게임입니다.
입력한 숫자 3개 중에 컴퓨터 정의 숫자에 있고 그 자리 위치까지 맞췄을경우컴퓨터는 Strike를 카운터 합니다.
그리고 컴퓨터 정의 숫자에는 있는데 자리 위치가 다른 경우 Ball을 카운터 합니다.
입력시 숫자와 숫자사이에는 꼭 ','로 구분해 주세요.
OUTPUT
count : 1 ==> Input Number :1,2,3
0 strick 1 ball
count : 2 ==> Input Number :3,4,5
0 strick 1 ball
count : 3 ==> Input Number :2,3,5
0 strick 1 ball
count : 4 ==> Input Number :6,1,5
1 strick 1 ball
count : 5 ==> Input Number :5,1,7
2 strick 0 ball
count : 6 ==> Input Number :5,1,8
2 strick 0 ball
count : 7 ==> Input Number :5,1,9
3 strick 0 ball
Greate!