'Problems/Level3'에 해당되는 글 14건

  1. 2020.04.22 StackArray
  2. 2020.04.22 SelfCloning
  3. 2020.04.22 TruthTable 2
  4. 2020.04.22 PowerSet
  5. 2020.04.22 AlphabeticalySort
  6. 2020.04.22 3nPlus1
  7. 2020.04.22 DigitalSum
  8. 2020.04.22 Binary
  9. 2020.04.22 Sign
  10. 2020.04.22 Baseball
  11. 2020.04.22 MovingClock
  12. 2020.04.22 Box
  13. 2020.04.22 MagicSquare
  14. 2020.04.22 CharDiamond
Problems/Level32020. 4. 22. 20:58

스택이란 여러 개의 데이타 항목들이 일정한 순서로 나열된 자료 구조로,
한쪽 끝에서만 새로운 항목을 삽입하거나 기존 항목을 삭제할 수 있도록 고안된 것입니다.

스택은 동전을 넣고 뺄 수 있도록 되어 있는 동전 케이스와 같은 작동 원리를 가지고 있는데
삽입된 동전들은 케이스 내부에 일정한 순서로 저장됩니다.

먼저 삽입된 동전은 케이스의 가장 아래쪽에 위치하고 가장 최근에 삽입된 동전은 입구에 놓입니다.

그래서 스택을 후입 선출 리스트(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) :

Posted by adhoc
Problems/Level32020. 4. 22. 20:55

어떤 수를 제곱했을 때, 그 수의 뒷부분이 원래의 수와 일치할 때 그 원래의 수를 자기복제수라고 합니다.

예를 들어, 25를 제곱하면 625이고, 625의 뒷부분이 25와 일치하므로 25는 자기복제수가 됩니다.

반면, 16을 제곱하면 256이 되는데, 16과 뒷부분이 일치하지 않으므로 자기복제수가 아닙니다.

10000 이하의 양의 자연수에서 자기복제수를 찾는 프로그램을 작성하세요.

OUTPUT

1
5
6
25
76
376
625
9376

Posted by adhoc
Problems/Level32020. 4. 22. 20:54

진리표 [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


 

Posted by adhoc
Problems/Level32020. 4. 22. 20:53

멱집합 [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

Posted by adhoc
Problems/Level32020. 4. 22. 20:53

문장을 입력받아 단어별로 알파벳순으로 정렬한다.

sort의 개념과 단어 구분하기, 문장과 단어의 시작과 끝을 파악할 수 있다면 쉽게 해결할수 있을겁니다.

INPUT

copy and paste hello world

OUTPUT

copy adn aepst ehllo dlorw


Posted by adhoc
Problems/Level32020. 4. 22. 20:52

[알고리즘 트레이닝북 문제]

어떤 정수 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

Posted by adhoc
Problems/Level32020. 4. 22. 20:50

디지털근을 구하는 방법으로는 정수의 각 자리의 수를 더하여 합이 10 보다 크거나 같으면

다시 그 합에 대한 디지털 근을 구하는 과정을 되풀이하고, 합이 10 보다 작으면 그 값이 정수의 디지털근이 됩니다.

정수를 입력받아 디지털 근을 구하는 문제를 풀어보세요.

예)
7777의 디지털 근

7777 -> 7+ 7 + 7 + 7 = 28
28 -> 2 + 8 = 10
10 -> 1 + 0 = 1

INPUT

7777

OUTPUT

  7 + 7 + 7 + 7  = 28
 2 + 8  = 10
 1 + 0  = 1
1

Posted by adhoc
Problems/Level32020. 4. 22. 20:49

10진수를 2진수로, 2진수를 10진수로 변환하는 프로그램을 작성합니다.

입력받는 방법으로는 문자열로 입력받는 방법과 정수형로 입력받는 방법이 있는데

정수형으로 입력하도록 하겠습니다.

INPUT

Deciaml : 100
Binary : 100

OUTPUT

1100100
4

Posted by adhoc
Problems/Level32020. 4. 22. 20:46

글자가 흘러가는 광고판을 만들어보세요.

OUTPUT

┏━━━

┃ STE COPY & PASTE ┃
━━━━

   - COPY & PASTE -

Posted by adhoc
Problems/Level32020. 4. 22. 20:44

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!


 

Posted by adhoc
Problems/Level32020. 4. 22. 20:42

매 초마다 다른 좌표에서 나타나는 시계를 만들어 출력합니다.

좌표제어를 통해 좌표의 최소값과 최대값을 벗어나지 않게 하는것이 이번 문제의 핵심입니다.

아무키나 누르면 종료합니다.

OUTPUT

┏━━━━━━━┓
2000.2.28   ┃
┣━━━━━━━┫
┃03 : 52 : 30┃
┗━━━━━━━┛

Posted by adhoc
Problems/Level32020. 4. 22. 20:35

Box

임의의 좌측 상위 꼭지점 x, y 좌표값과 우측 하위 x, y 좌표값을 이용하여 원하는 크기의 box를 그리세요.

지금 출력결과는 좌측 상위(2,2)에서 우측 하위(10,10)입니다.


OUTPUT
  
  *-------*
  |       |
  |       |
  |       |
  |       |
  |       |
  |       |
  |       |
  *-------*

Posted by adhoc
Problems/Level32020. 4. 22. 20:34

마방진(magic square)
마방진이란 1에서 n^2까지의 정수를 n행 n열의 정사각형 모양으로 나열하여 가로·세로·대각선의 합이
전부 같아지도록 한 것입니다.

예)8  1  6
   3  5  7
   4  9  2

일정한 규칙에 따라 네모진 틀에서 마방진을 만들 때는 규칙대로 수를 써넣으면 되지만,
홀수방진과 짝수방진은 만드는 규칙이 다릅니다.

이 문제는 홀수 마방진만 출력하며 홀수 마방진에 대한 자세한 규칙은 검색을 이용하세요.

그 규칙에 따라 홀수 마방진 프로그램을 작성하시면 됩니다.

INPUT

9

OUTPUT

 47  58  69  80   1  12  23  34  45
 57  68  79   9  11  22  33  44  46
 67  78   8  10  21  32  43  54  56
 77   7  18  20  31  42  53  55  66
  6  17  19  30  41  52  63  65  76
 16  27  29  40  51  62  64  75   5
 26  28  39  50  61  72  74   4  15
 36  38  49  60  71  73   3  14  25
 37  48  59  70  81   2  13  24  35

Posted by adhoc
Problems/Level32020. 4. 22. 20:32

Loop와 문자열 제어를 적절히 사용하여 다음 문제를 풀어보세요.

INPUT

Copy&Paste

OUTPUT

         C
        CoC
       CopoC
      CopypoC
     Copy&ypoC
    Copy&P&ypoC
   Copy&PaP&ypoC
  Copy&PasaP&ypoC
 Copy&PastsaP&ypoC
Copy&PastetsaP&ypoC
 Copy&PastsaP&ypoC
  Copy&PasaP&ypoC
   Copy&PaP&ypoC
    Copy&P&ypoC
     Copy&ypoC
      CopypoC
       CopoC
        CoC
         C

Posted by adhoc