Algorithm Problem/Python

[python] SWEA - 4366. ์ •์‹์ด์˜ ์€ํ–‰์—…๋ฌด

deo2kim 2022. 3. 25. 23:12
๋ฐ˜์‘ํ˜•

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

  • ์ฃผ์–ด์ง„ ์ง„์ˆ˜๋ฅผ ํ•œ์ž๋ฆฌ ์”ฉ ๋‹ค๋ฅธ๊ฒƒ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ
    • 1101(2์ง„์ˆ˜) => 0101, 1001, 1111, 1100
    • 1221(3์ง„์ˆ˜) => 0221, 2221, 1021, 1121, 1201, 1211, 1220, 1222
  • ๊ฐ ์ˆ˜์— ๋Œ€ํ•ด์„œ 10์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๊ณ  ๋ฆฌ์ŠคํŠธ(or ๋”•์…”๋„ˆ๋ฆฌ)์— ๋„ฃ๊ธฐ
    • 2์ง„์ˆ˜ ๋จผ์ €ํ•ด์„œ ๋‹ค ๋„ฃ์–ด๋‘๊ณ 
    • 3์ง„์ˆ˜ ๋ณ€ํ™˜ํ•  ๋•Œ๋งˆ๋‹ค ์ด๋ฏธ ์žˆ๋Š”์ง€ ์ฒดํฌํ•ด์„œ
    • ์žˆ์œผ๋ฉด break
  • ๋‹ต ์ถœ๋ ฅ

 

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

def convert_decimal(standard, num):
    converted_number = 0
    for i in range(len(num)):
        converted_number += int(num[i]) * (standard ** (len(num) - i - 1))
    return converted_number


T = int(input())
for test_case in range(1, T + 1):
    answer = 0
    binary_number = input()
    trinary_number = input()

    guess_number_list = {}

    for i in range(len(binary_number)):
        for j in range(2):
            if binary_number[i] == str(j):
                continue

            wrong_number = str(j)
            changed_number = binary_number[:i] + wrong_number + binary_number[i + 1:]
            guess_number = convert_decimal(2, changed_number)
            guess_number_list[guess_number] = 1

    for i in range(len(trinary_number)):
        for j in range(3):
            if trinary_number[i] == str(j):
                continue

            wrong_number = str(j)
            changed_number = trinary_number[:i] + wrong_number + trinary_number[i + 1:]
            guess_number = convert_decimal(3, changed_number)
            if guess_number_list.get(guess_number):
                answer = guess_number
                break

    print(f'#{test_case} {answer}')

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

์ถœ์ฒ˜: SW Expert Academy

๋ฐ˜์‘ํ˜•