Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 1174. ์ค„์–ด๋“œ๋Š” ์ˆซ์ž

deo2kim 2021. 9. 7. 17:15
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

๋ชปํ’€๋‹ค๊ฐ€ ๋ฌธ์ œ ์œ ํ˜•์— ๋ฐฑํŠธ๋ž˜ํ‚น์ด ์žˆ๊ธธ๋ž˜ ํžŒํŠธ๋ฅผ ์–ป์–ด ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ดค๋‹ค.

  • ์•„์ด๋””์–ด๋Š” ํ˜„์žฌ ์ˆซ์ž์˜ ๋์ž๋ฆฌ๋ณด๋‹ค ๋‚ฎ์€ ์ˆซ์ž๋“ค์„ ๋’ค์— ์ถ”๊ฐ€ํ•˜๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
    • ํ˜„์žฌ 764์ด๋ฉด
      • 7640 => ๋
      • 7641 => 76410 => ๋
      • 7642 => 76420 => 76421 => 764210 => ๋
  • ๋งˆ์ง€๋ง‰์— sort๋งŒ ํ•ด์ฃผ๋ฉด ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ค ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐ€๋” ์•ˆํ’€๋ฆฌ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜๊ธฐ ์ „์— ์œ ํ˜•์œผ๋กœ ํžŒํŠธ๋ฅผ ์–ป์–ด๋ณด์ž๐Ÿ˜€

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

N = int(input())


# ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ด์šฉํ•œ ๋ฌธ์ œ ํ’€์ด
def bt(cur):
    answer.append(int(cur))
    for j in range(0, int(cur[-1])):  # ํ˜„์žฌ ์ˆซ์ž์˜ ๋์ž๋ฆฌ๋ณด๋‹ค ๋‚ฎ์€ ์ˆซ์ž๋“ค๋งŒ ๊ทธ ๋‹ค์Œ ์ž๋ฆฌ์ˆ˜์— ์ถ”๊ฐ€ํ•œ๋‹ค.
        bt(cur + str(j))


if N > 1023:  # ๊ฐฏ์ˆ˜๊ฐ€ 1023๊ฐœ์ธ๋“ฏ... 0 ๋ถ€ํ„ฐ 9876543210 ๊นŒ์ง€ ์ด๋ฏ€๋กœ ์–ผ๋งˆ ์•ˆ๋‚˜์˜ด
    print(-1)
else:
    answer = []
    for i in range(10):  # ๋งจ ์•ž์ž๋ฆฌ๊ฐ€ 0, 1, ,... , 9
        bt(str(i))

    print(sorted(answer)[N - 1])

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

 

 

 

๋ฐ˜์‘ํ˜•