[TIL #5] 5์ผ์ฐจ, 3์›”์˜ ์‹œ์ž‘! (2023.03.01 ์ˆ˜)

2023. 3. 1. 23:24ใ†Today I Learned

TIL 2023.03.01 ๐Ÿฃ

๋ฒŒ์จ 3์›”์ด ๋˜์–ด๋ฒ„๋ ธ๋„ค์š”.... ์˜ค๋Š˜์€ ์‚ผ์ผ์ ˆ์ด๋ผ ํœด์ผ์ด์ง€๋งŒ 3์›”์ด๋ผํ•จ์€ ๊ฐœ๊ฐ•์ด ๋‹ค๊ฐ€์™”๋‹ค๋Š” ๊ฒƒ์ด๊ฒ ์ง€์š”.... ๊ทธ๋ž˜๋„ ๋‹คํ–‰์ธ๊ฑด ๋ง‰ํ•™๊ธฐ์ด๊ณ  6ํ•™์ ๋งŒ ๋“ค์œผ๋ฉด ๋œ๋‹จ ์‚ฌ์‹ค... ๊ทธ๋ž˜๋„ ๊ณต๋ถ€ํ• ๊ฒŒ ๋Š˜์—ˆ๋‹ค๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ๋ถ€๋‹ด์ž…๋‹ˆ๋‹ค๋งŒ, ๋ญ ๋Œ€ํ•™ ๊ณต๋ถ€ ์ฆ๊ธฐ๋ฉด์„œ ํ•˜๋ฉด ๋‹ค ์ข‹์€ ๊ฒฐ๊ณผ ๋”ฐ๋ผ์˜ค๊ฒŒ ๋ผ์žˆ์ฃ ! ํ•˜ํ•˜

์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์–ด๋ ค์šด ๋ฌธ์ œ & ์‰ฌ์šด ๋ฌธ์ œ ์„ž์–ด์„œ ๋‹ค์–‘ํ•˜๊ฒŒ ํ’€์–ด๋ดค๋‹ค.

    • ๋ฐฑ์ค€ 2475 : ๋ธŒ๋ก ์ฆˆ 5์˜ ๋งค์šฐ ์‰ฌ์šด ๋ฌธ์ œ. 5๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๊ฐ๊ฐ ์ œ๊ณฑํ•œ ์ˆ˜์˜ ํ•ฉ์„ 10์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ธ๋ฐ, ํ‰์†Œ์— ์ž์ฃผ ์“ฐ์ง€ ์•Š์•„๋ณธ ํŒŒ์ด์ฌ์˜ ๋ฌธ๋ฒ•์ธ ๋žŒ๋‹ค์‹์„ ํ™œ์šฉํ•ด์„œ ํ–ˆ๋‹ค. ํ‰์†Œ๊ฐ™์•˜์œผ๋ฉด for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ list์˜ ๊ฐ ์›์†Œ๋“ค์— ์ œ๊ณฑํ•˜๋ฉฐ sum์— ๋ˆ„์ ํ–ˆ๊ฒ ์ง€๋งŒ, ์ด๋ฒˆ์—” map ๊ณผ ๋žŒ๋‹ค์‹์„ ํ™œ์šฉํ•ด๋ดค๋‹ค.

        pow_2 = lambda x : x**2
        nums = list(map(pow_2, map(int, input().split())))
        print(sum(nums) % 10)

      : ๋žŒ๋‹ค์‹์œผ๋กœ ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ–ˆ๊ณ , map์œผ๋กœ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์š”์†Œ์— ์ผ์ผํžˆ ์ ‘๊ทผํ•  ํ•„์š”์—†์ด ํ•จ์ˆ˜ ๊ฐ’์„ ๊ตฌํ•˜์—ฌ list๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ํŒŒ์ด์ฌ์˜ list๋Š” ๋‚ด์žฅํ•จ์ˆ˜ sum()์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์Šค๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค!

      • ๋ฐฑ์ค€ 14502 : backtracking + bfs ๋ผ ์กฐ๊ธˆ ์–ด๋ ค์› ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ backtracking ๋ง๊ณ  iterator์˜ permutations (์ˆœ์—ด)์„ ํ™œ์šฉํ–ˆ์–ด๋„ ๋์„ ๊ฒƒ ๊ฐ™๋‹ค!

      • ๋ฐฑ์ค€ 1654, 2805 : ์ด์ง„ ํƒ์ƒ‰ ๋ฌธ์ œ, ์ด์ง„ ํƒ์ƒ‰์€ ์–ด๋ ค์šด๋ฐ ์žฌ๋ฐŒ๋‹ค. ํ™•์‹คํžˆ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

      • ๋ฐฑ์ค€ 18111 : ์‰ฌ์› ๋Š”๋ฐ ์–ด๋ ค์› ๋˜ ๋ฌธ์ œ.. ๊ดœํžˆ ์ด์ง„ ํƒ์ƒ‰์œผ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค๊ฐ€ ๋ณต์žกํ•ด์ง€๊ธฐ๋งŒ ํ–ˆ์—ˆ๋‹ค. 256๊ฐœ๋กœ ํ•œ์ •๋˜์–ด์žˆ์œผ๋‹ˆ๊นŒ ๋ธŒ๋ฃจํŠธํฌ์Šค๋กœ ์ ‘๊ทผํ•ด๋„ ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

      • ๋ฐฑ์ค€ 2577 : a * b * c ์˜ ๊ฒฐ๊ณผ๊ฐ’์— ๊ฐ ์ˆซ์ž๊ฐ€ ๋ช‡ ๋ฒˆ์”ฉ ๋‚˜์˜ค๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋‹ค. Counter์˜ ์ธ์ž๊ฐ’์œผ๋กœ iterableํ•œ ๊ฐ์ฒด๊ฐ€ ์ฃผ์–ด์ ธ์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ

        import sys
        from collections import Counter
        a = int(sys.stdin.readline().rstrip())
        b = int(sys.stdin.readline().rstrip())
        c = int(sys.stdin.readline().rstrip())
        
        # print(Counter(a * b * c))   # int๋Š” Counter์— ์ „๋‹ฌ X     
        cnt = Counter(str(a * b * c))   # str์€ iterable
        print(cnt)
        
        for i in range(0, 10):
          print(cnt.get(str(i), 0))

        : Counter ํด๋ž˜์Šค๋Š” ์ธ์ž๋กœ ๋ฐ›์€ ๋ฐ์ดํ„ฐ์—์„œ ๊ฐ ์ธ์ž๊ฐ€ ๋ช‡ ๋ฒˆ์”ฉ ๋‚˜์˜ค๋Š”์ง€๊ฐ€ ์ €์žฅ๋œ Counter ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
        (a * b * c)๋Š” int๋กœ iterable ํ•œ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— Counter ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ iterableํ•œ ๊ฐ์ฒด์ธ str๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค, Counter์˜ ์ธ์ž๋กœ ๋„˜๊ฒจ์•ผํ•œ๋‹ค.

  • ๋ฆฌ์•กํŠธ ๊ฐ•์˜ : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž๋ฃŒํ˜•๊ณผ ํ˜•๋ณ€ํ™˜, ์—ฐ์‚ฐ์ž, ์กฐ๊ฑด๋ฌธ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ–ˆ๋‹ค. ๋‚ด์ผ์€ ๊ผญ javascript ๋ณต์Šต์„ ์™„๋ฃŒํ•ด์„œ ์ฃผ๋ง์—” node.js ๋ถ€๋ถ„์„ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•ด์•ผ์ง€.

์ถ”๊ฐ€์ ์œผ๋กœ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๐Ÿ‘

  • ์ด์ง„ ํƒ์ƒ‰ ์›๋ฆฌ ํฌ์ŠคํŒ…
  • ์ˆœ์—ด/์กฐํ•ฉ ๋น„๊ต
  • Counter ๊ฐ์ฒด ํ•จ์ˆ˜ ์ •๋ฆฌ

๊ธฐํƒ€ ๐Ÿค”

  • solved.ac ์˜ Class 2 ๊นŒ์ง€ ๋ชจ๋‘ ๋ถ€์…จ๋‹ค. ๋‚ด์ผ๋ถ€ํ„ด Class 3์„ ๋ถ€์‹ค๊ฑฐ๋‹ค!
  • ํœด์ผ์ด ์—ฐ๋‹ฌ์•„ ์žˆ๋‹ค๋ณด๋‹ˆ๊นŒ ๋งˆ์Œ์žก๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค. ๊ทธ๋ž˜๋„ ์•„์˜ˆ ์‰ฌ์ง€ ์•Š๊ณ  ์กฐ๊ธˆ์ด๋ผ๋„ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•œ ๋‚˜, ์นญ์ฐฌํ•ด.
  • ๋งจ๋‚  ์‹คํŒจํ•œ๋‹ค๊ณ  ์ž์ฑ…ํ•˜๋ฉฐ ๋‚˜๋ฅผ ๋ฏธ์›Œํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ์กฐ๊ธˆ์ด๋ผ๋„ ํ•ด๋‚ธ ๋‚˜๋ฅผ ์นญ์ฐฌํ•ด์ฃผ๋Š”๊ฒŒ ์ง€์†์„ฑ์— ๋” ๋„์›€์ด ๋œ๋‹ค,