iSharp [3568] with 파이썬 본문
# 첫번째 풀이
n = input()
var_list = list(n.split(', '))
first_list = list(var_list[0].split(' '))
base = first_list[0]
var_list[0] = first_list[1]
var_list[-1] = var_list[-1][:-1]
last = ';'
def solve(var):
var = list(var)
new_var = []
for i in range(len(var)):
new_var.append(var.pop())
for i in range(len(new_var)-1):
if new_var[i] == ']' and new_var[i+1] == '[':
new_var[i], new_var[i+1] = new_var[i+1],new_var[i]
new_var = ''.join(new_var)
print(base + new_var[:-1] + ' ' + new_var[-1] + last)
for var in var_list:
solve(var)
--------------------------
# 두번째 풀이
var = input()[:-1]
common, *vals = var.split()
vals = ''.join(vals).split(',')
last = ';'
for val in vals:
new_val = ''
for i in range(len(val)-1, -1, -1):
new_val += val[i]
new_val = new_val.replace('][', '[]')
print(common + new_val[:-1] + ' ' + new_val[-1] + last)
# new_val[i], new_val[i+1] = new_val[i+1], new_val[i]
TypeError: 'str' object does not support item assignment
-> Str 문자 바꾸려면 replace 사용해야함 = 사용 못함
# list -> str : join 활용 str(list) 안됨
--------------------
다른 사람 풀이:
txt = input()[:-1]
comm, *vals = txt.split()
vals = ''.join(vals)
for val in vals.split(','):
for i in range(len(val)):
if val[i] == '[' or val[i] == '&' or val[i] == '*':
name, left = val[:i], val[i:]
break
else:
name, left = val, ''
reform = ''
for i in list(left)[::-1]:
if i == ']':
reform += '[]'
elif i == '[':
continue
else:
reform += i
print(comm + reform + ' ' + name + ';')
'Algorithms > Simulation' 카테고리의 다른 글
나무 재테크 [16235] with 파이썬 (0) | 2020.06.03 |
---|---|
LCD Test [2290] with 파이썬 (0) | 2020.05.29 |
드래곤 커브 [15685] with 파이썬 (0) | 2020.05.27 |
뱀 [3190] with 파이썬 (0) | 2020.05.26 |
[5/25] 취준 Blog Memo - Day 28 (0) | 2020.05.26 |