๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜ PS] ๋ฐฑ์ค€ 1850๋ฒˆ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜ ์ž๋ฐ” ๋ฌธ์ œํ’€์ด

by Wonit 2021. 2. 4.

๋ฌธ์ œ

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋ฐฑ์ค€์˜ 1850๋ฒˆ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜ ์˜ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.
์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด์ž.


์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ์ œ์—์„œ ์กฐ๊ธˆ ๋ณ€ํ˜•์„ ํ•œ ํ˜•ํƒœ์ด๋‹ค.


์ด ๋ณ€ํ˜• ๋•๋ถ„์— ๋ฌธ์ œ์˜ ์ •๋‹ต๋ฅ ์ด 30%๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ์ž˜ ๋”ฐ๋ผ์˜จ๋‹ค๋ฉด ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š์€ ๋ณ€ํ˜•์ด๋‹ค.

ํ•ด๊ฒฐ๋ฒ•

๋ฌธ์ œ์—์„œ๋Š” ๋‹ค์Œ ๋‘ ๊ฐœ์˜ ์ž…๋ ฅ์„ ์ค€๋‹ค.

  1. A : ์ฒซ ๋ฒˆ์งธ ์ˆ˜์˜ ์ž๋ฆฌ์ˆ˜
  2. B : ๋‘ ๋ฒˆ์งธ ์ˆ˜์˜ ์ž๋ฆฌ์ˆ˜

์ด๋ ‡๊ฒŒ A์™€ B๋ฅผ ๋ฐ›๊ฒŒ ๋œ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” 1์„ A๋ฒˆ๊ณผ B๋ฒˆ ๊ฐ๊ฐ ์ด์–ด ๋ถ™ํ˜€ ํ•˜๋‚˜์˜ ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

 

๋งŒ์•ฝ A๊ฐ€ 3์ด๊ณ  B๊ฐ€ 6์ด๋ผ๋ฉด

A = 111
B = 111_111

์ด์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ์ด A์™€ B๊ฐ€ ๋งŒ๋“  ์ˆ˜ ๋ผ๋ฆฌ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ GCD๋ฅผ ๊ตฌํ•˜๋ผ๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

๋‹จ ์กฐ๊ฑด์ด A์™€ B๋Š” 2^62์ œ๊ณฑ์œผ๋กœ ๋Œ€๋žต 10๊ฒฝ์˜ ์ž๋ฆฌ์ˆ˜๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

์˜คํ•ดํ•˜๋ฉด ๋ฌธ์ œ ํ‹€๋ฆฐ๋‹ค.

 

10๊ฒฝ์€ 1000์กฐ๊ฐ€ 10๊ฐœ ์žˆ๋Š”๋ฐ, ์ด 10๊ฒฝ์˜ ์ž๋ฆฌ์ˆ˜๋Š” 16์Šน์ด๋‹ค.

 

A๊ฐ€ 16์ด๊ณ  B๊ฐ€ 16์ด๋ฉด

A = 1111111111111111
B = 1111111111111111

์ธ ์…ˆ์ด๋‹ค.

 

์ด๊ฒŒ ์ด 10๊ฒฝ์˜ ์ž๋ฆฌ์ˆ˜๋ผ๋ฉด ์šฐ๋ฆฐ ์ ˆ๋Œ€๋กœ ์ผ๋ฐ˜ ์ž๋ฃŒํ˜•์œผ๋กœ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ๋‹ค.

 

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

์ ‘๊ทผ๋ฒ•

์ด ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง€๋Š” A์™€ B ์ž๋ฆฌ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.

  • A = 3 ์ด๊ณ  B = 6 ์ด๋ฉด 111์ด๋ผ๋Š” ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • A = 5 ์ด๊ณ  B = 10 ์ด๋ฉด 11111๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • A = 5 ์ด๊ณ  B = 15 ์ด๋ฉด 11111๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค.
A = 111;
B = 111_111;
answer = 111;

A = 11111;
B = 11111_11111;
answer = 11111;

A = 11111;
B = 11111_11111_11111;
answer = 11111;

๊ทœ์น™์ด ๋ณด์ด๋‚˜?

 

์ข€ ๋” ์ง๊ด€์ ์œผ๋กœ ๋ฐ”๊ฟ”๋ณด๊ฒ ๋‹ค.

  • A = 3 ์ด๊ณ  B = 6 ์ด๋ฉด 111์ด๋ผ๋Š” ์ˆ˜๊ฐ€ ์ฆ‰ 1์˜ 3์ž๋ฆฌ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • A = 5 ์ด๊ณ  B = 10 ์ด๋ฉด 11111๊ฐ€ ์ฆ‰ 1์˜ 5์ž๋ฆฌ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • A = 5 ์ด๊ณ  B = 15 ์ด๋ฉด 11111๊ฐ€ ์ฆ‰ 1์˜ 5์ž๋ฆฌ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ์‚ฌ์‹ค์ƒ A์™€ B์— ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ  ๊ฒฐ๊ณผ ์ˆ˜๋งŒํผ 1์— 1์ž๋ฆฌ๋งŒํผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์ฃผ์˜ ํ•˜์ž

์ฃผ์˜ํ•˜์ž a์™€ b๋Š” 2^63 ์ œ๊ณฑ์˜ ์ˆ˜๋‹ค.


์ด ๋ง์€ java์˜ intํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ด๋‹ค.


long ํ˜•์€ 2^64 ์ œ๊ณฑ๊นŒ์ง€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ longํ˜•์ด ์ ์ ˆํ•ด ๋ณด์ธ๋‹ค.

์ •๋‹ต ์ฝ”๋“œ

public class Main {
  public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    String[] ab = br.readLine().split(" ");

    long a = Long.parseLong(ab[0]);
    long b = Long.parseLong(ab[1]);

    if(a < b) {
      long temp = a;
      a = b;
      b = temp;
    }

    while(b > 0) {
      long temp = b;
      b = a % b;
      a = temp;
    }

    while(a-- > 0) {
      bw.write("1");
    }

    bw.flush();
    bw.close();
  }
}

์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€