1. 문제

무한히 큰 배열에 다음과 같이 분수들이 적혀있다.

1/1 

1/2 

1/3 

1/4 

1/5 

... 

2/1 

2/2 

2/3 

2/4 

... 

... 

3/1 

3/2 

3/3 

... 

... 

... 

4/1 

4/2 

... 

... 

... 

... 

5/1 

... 

... 

... 

... 

... 

... 

... 

... 

... 

... 

... 


이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.

X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.


2. 입력

첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.


3. 출력

첫째 줄에 분수를 출력한다.




4. 풀이




1. 문제

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.


2. 입력

첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.


3. 출력

입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.




4. 풀이


1. 문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 다음과 같이 변경해서 입력했다.

   크로아티아 알파벳

  변경 

  č

  c=

  ć

  c- 

  dž

  dz= 

  ñ

  d- 

  lj

  lj 

  nj

  nj 

  š

  s= 

  ž 

  z=


예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.


2. 입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

문제 설명에 나와있는 크로아티아 알파벳만 주어진다.


3. 출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.




4. 풀이




+ Recent posts