์ซ์ ์ผ๊ตฌ๊ฒ์์ ๋ง๋ค์ด๋ณด์!
์ซ์์ผ๊ตฌ ๊ฒ์ ๋ง๋ค์ด๋ณด๊ธฐ
์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ ์ซ์์ผ๊ตฌ ๊ฒ์์ ๋ง๋ค์ด์ฃผ์ธ์
์๊ตฌ์กฐ๊ฑด
- ํ๋ก๊ทธ๋จ์ด ์์๋๋ฉด ์ท์์ผ๊ตฌ ๊ฒ์์ ๋ช ์๋ฆฌ ์ซ์๋ก ํ ๊ฑด์ง ์
๋ ฅ ๋ฐ์ ์ฃผ์ธ์
- 3์ ์ ๋ ฅํ ๊ฒฝ์ฐ ํด๋น ์ซ์์ผ๊ตฌ ๊ฒ์์ 3์๋ฆฟ์๋ก ์งํ, ์ต๋ 10์๋ฆฌ
- ์ฒซ ๋ฒ์งธ ์ ๋ ฅ์ ๋ฐ์ ์๋ฆฟ์ ๋งํผ ํ ํ์ด์ฌ์ผ๋ก ์ค๋ณต ์๋ ๋๋คํ ์๋ฅผ ์์ฑํด ์ฃผ์ธ์
- ์ฌ์ฉ์๊ฐ ์ซ์๋ฅผ ์ ๋ ฅ ํ์ ๋ ์ซ์์ผ๊ตฌ ๊ฒ์์ ๊ท์น์ ๋ง๊ฒ ball / out count๋ฅผ ์ถ๋ ฅํด ์ฃผ์ธ์
- ์ฌ์ฉ์๊ฐ ์ ๋ต์ ๋ง์ถ ๊ฒฝ์ฐ ์๋ ํญ๋ชฉ๋ค์ ์ถ๋ ฅํด ์ฃผ์ธ์
- ์ฌ์ฉ์๊ฐ ์ ๋ต์ ๋ง์ถ๊ธฐ๊น์ง ์ ๋ ฅ ํ ํ์
- ์ฌ์ฉ์๊ฐ ๊ฒ์์ ์์ํด์ ์ ๋ต์ ๋ง์ถ๊ธฐ๊น์ง ์์๋ ์๊ฐ
- ์ ๋ต์ ๋ง์ถ ์์ ์ ๋ ์ง/์๊ฐ
- ๊ฒ์์ ์งํํ๋ ๋์ค, “exit”์ ์ ๋ ฅํ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํด ์ฃผ์ธ์
๊ณผ์ ๋ฅผ ํ๊ธฐ ์ํ ๋์๋ซ๊ธฐ
- 1. ์ฌ์ฉ์์ ์
๋ ฅ์ ๋ฐ์ n๊ฐ์ ์ค๋ณต๋์ง ์๋ ๋๋คํ ์ซ์๋ฅผ ์์ฑํ๋ค.
2. ํ๋ก๊ทธ๋จ์ด ์์ ๋ ์๊ฐ์ ๊ธฐ๋กํ๋ค.
3. ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๊ณ , ์ ๋ ฅ์ ๋ฐ์ ๋๋ง๋ค try count๋ฅผ 1์ฉ ๋ํด์ค๋ค.
4. ์ฌ์ฉ์ ์ ๋ ฅ x์ ๋๋คํ๊ฒ ์์ฑ ๋ y ๋ ์ซ์๋ฅผ ๋น๊ตํ๋ค.
4-a. x์ ์ฒซ ๋ฒ์งธ ์ซ์๊ฐ y์ ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ค.
* ํฌํจ๋์ด ์์ง ์๋ค๋ฉด out count + 1
4-b. x์ ์ฒซ ๋ฒ์งธ ์ซ์๊ฐ y์ ํฌํจ๋์ด ์๋ค๋ฉด x์ ์ฒซ ๋ฒ์งธ ์ซ์์ y์ ์ฒซ ๋ฒ์จฐ ์ซ์๊ฐ ์ผ์นํ๋์ง ํ์ธํ๋ค.
* ์ผ์นํ๋ ๊ฒฝ์ฐ strike count + 1
* ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ball count + 1
4-c. 4-a ~ 4-b๋ฅผ x์ ๋ชจ๋ ์๋ฆฟ์๋ฅผ ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
5. ์ฌ์ฉ์๊ฐ exit์ ์ ๋ ฅํ๊ฑฐ๋ ์ ๋ต์ ๋ง์ถ ๋๊น์ง 3~4์ ๋์์ ๋ฌดํํ๊ฒ ๋ฐ๋ณตํ๋ค.
6. ์ฌ์ฉ์์ ์ ๋ ฅ์ด 1๋ฒ์์ ์์ฑํ ์ซ์์ ์ผ์น ํ ๊ฒฝ์ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๊ณ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค.
6-a. try count๋ฅผ ์ถ๋ ฅํ๋ค.
6-b. ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ ๋ ์๊ฐ๊ณผ ํ๋ก๊ทธ๋จ์ด ์์ ๋ ์๊ฐ์ ์ฐจ๋ฅผ ๊ณ์ฐํด ํ๋ก๊ทธ๋จ์ ์คํ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
6-c. ๊ฒ์์ด ์ข ๋ฃ ๋ ์์ ์ ๋ ์ง์ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
๋ฌธ์ ๋ ์ ๋ฌํ๋ค
์ฒ์์ ์์์ด ๋๋ฌด ๋ง์ฐํ๋ค.
์ผ๋จ random ์๋ฅผ ๋ฐ์์์ผํ๋๊น import ํด์ฃผ๊ณ
์๊ฐ์ ์ฌ์ผํ๋๊น datetime, timedelta๋ ๋ฐ์์์ฃผ๊ณ
๋๋ค ์ซ์์ ์ ๋ ฅ๊ฐ์ด ์ค๋ณต์ด๋ฉด ์๋๋๊น set์ผ๋ก ์ฃผ๊ณ
๋ณ์์ ์ธ ํด์ฃผ๊ณ ์์...!!!
import random
from datetime import datetime, timedelta
random_numbers = set()
user_numbers = set()
try_count = 0
o = 0
b = 0
s = 0
# ์ฌ์ฉ์ ์
๋ ฅ๊ฐ ๋งํผ ์ค๋ณต ์๋ ๋๋ค ์ซ์ ์์ฑ
def get_random_number(start):
result = []
if start > 10:
print("10๋ณด๋ค ์์ ์ ์
๋ ฅํด์ฃผ์")
elif start == 0:
print("0์ ๊ฒ์์ ์์ํ ์ ์๋ค!!!")
else:
random_number = set()
while len(random_number) < start:
random_number.add(random.randrange(1, 10))
return random_number
num = int(input())
random_numbers = list(get_random_number(num))
start_time = datetime.now()
user_numbers = list(set(map(int, input().split())))
if user_numbers != random_numbers:
try_count += 1
for i in range(len(random_numbers)):
if user_numbers[i] not in random_numbers:
o += 1
else:
if user_numbers[i] == random_numbers[i]:
s += 1
else:
b += 1
print(random_numbers)
print(user_numbers)
print(f'ball : {b}, out : {o}, strike : {s}')
์ผ๋จ ์ฌ๊ธฐ๊น์ง ํด๋ดค๋ค!
๋๋ค์๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ,
user_numbers๋ก input๊ฐ ๋ฐ์์์ ํ์ธํ ๊ฒธ
ramdom_numbers์ user_numbers, ball, out, strike ๊น์ง ์ฐ์ด์ฃผ๋๋ก!
์ ํ๋ฒ ์ ๋ ฅํ๊ฑฐ๋ก ์ ๋์ค๊ฒ๋ ํ์ผ๋ ์ด์ ์ด๊ฑธ ์ ๋ต ๋ง์ถ๋๊น์ง ๋ฐ๋ณตํด๋ณด์..!!!!
import random
from datetime import datetime
import time
random_numbers = set()
user_numbers = set()
try_count = 0
o = 0
b = 0
s = 0
# ์ฌ์ฉ์ ์
๋ ฅ๊ฐ ๋งํผ ์ค๋ณต ์๋ ๋๋ค ์ซ์ ์์ฑ
def get_random_number(start):
if start > 10:
print("10๋ณด๋ค ์์ ์ ์
๋ ฅํด์ฃผ์")
elif start == 0:
print("0์ ๊ฒ์์ ์์ํ ์ ์๋ค!!!")
else:
random_number = set()
while len(random_number) < start:
random_number.add(random.randrange(1, 10))
return random_number
num = int(input())
random_numbers = list(get_random_number(num))
start_time = time.time()
user_numbers = list(set(map(int, input().split())))
print(random_numbers)
while True:
if user_numbers != random_numbers:
try_count += 1
for i in range(len(random_numbers)):
if user_numbers[i] not in random_numbers:
o += 1
elif user_numbers[i] in random_numbers:
if user_numbers[i] == random_numbers[i]:
s += 1
elif user_numbers[i] in random_numbers:
b += 1
print(f'{o}O, {b}B, {s}S')
o = 0
s = 0
b = 0
user_numbers = list(set(map(int, input().split())))
else:
print('์ ๋ต์
๋๋ค!')
end_time = time.time()
print(end_time-start_time)
break
์ผ์ใ ์์์์ ์ใ ใ ์์ ๋ด์ผ ๋ค์ํด๋ณด๋๋กํ์
-----
์ค๋ ํด์ค๊ฐ์๋ฅผ ๋ค์๋ค!
import random
import time
from datetime import datetime
# CASE 1
"""
number_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(number_list)
random_numbers = number_list[0:length] # 0:5
print(random_numbers)
"""
# CASE 2
"""
number_list = [x for x in range(10)] # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random_numbers = []
for _ in range(length):
random_numbers.append(number_list.pop(random.randrange(0, len(number_list))))
print(random_numbers)
"""
# CASE 3
def main():
length = int(input("์๋ฆฟ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ : "))
random_numbers = set()
while len(random_numbers) < length:
random_numbers.add(random.randint(0, 9))
random_numbers = list(random_numbers)
random.shuffle(random_numbers)
start_time = time.time()
try_count = 0
while True:
input_number = input("๊ฐ์ ์
๋ ฅํด์ฃผ์ธ์ (์ข
๋ฃ - exit): ")
if input_number == "exit":
return
try_count += 1
out_count = 0
ball_count = 0
strike_count = 0
for i, v in enumerate(input_number):
v = int(v)
if v not in random_numbers: # ํฌํจ๋ผ์์ง ์์ ๊ฒฝ์ฐ
out_count += 1
else: # ํฌํจ๋ผ ์๋ ๊ฒฝ์ฐ
if random_numbers[i] == v:
strike_count += 1
else:
ball_count += 1
if strike_count == length:
print("########################")
print("์ ๋ต์
๋๋ค!!")
print(f"์์ ์๊ฐ : {time.time() - start_time:.2f}")
print(f"ํด๋ฆฌ์ด ์ผ์ : {datetime.now()}")
print(f"๋์ ํ์ : {try_count}")
print("########################")
return
print(f"{ball_count}๋ณผ {strike_count}์คํธ๋ผ์ดํฌ {out_count}์์")
main()
ํ๋ฒ ์ดํด๋ฅผ ํด๊ณ ๋ค์ ํด๋ดค์ผ๋
์ฃผ๋ง์ ํ๋ฒ ๋ค์ ํด๋ด์ผ๊ฒ ๋ค!
'๐๐ช > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ํ ๋์ด ๊ณ์ฐ, ๊ณ์ฐ๊ธฐ๋ง๋ค๊ธฐ, ํ๋กํ ๊ด๋ฆฌ๊ธฐ๋ฅ (0) | 2022.09.13 |
---|---|
Python ํน๊ฐ (4) (class, mutable/immutable) (0) | 2022.09.13 |
Python ํน๊ฐ (3) (0) | 2022.09.07 |
22. 09. 06 ๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ (0) | 2022.09.06 |
Python ํน๊ฐ (2) (0) | 2022.09.06 |
๋๊ธ