[항해99] 11일차 알고리즘
IT/Bootcamp 항해992021. 6. 17. 23:31
항해 99
항해 11일차 :
세상에나.. 오늘도 알고리즘이다. 문제를 최대한 나혼자 풀어볼려고 노력했다. 왠지 혼자서 잘풀수있을것같은데 거의 2-3시간동안
끙끙대다가 나중에 답을 본다.
오늘 푼문제 :
백준 2941 문제
처음에문제를 봤을때 split 해서 해당하는 크로아티아 문자를 삭제해서 카운트를 넣어서 풀수있을줄알았다.
input = str(input().lower())
# chro_list =["c=","c-","dz=","d-","lj","nj","s=","z="]
a=input.split("=")
count = 1
# asz= => as ,z => 1,2
b=""
for i in range(len(a)-1):
string = a[i]
if string[-1] == 's':
a[i]= a[i][:-1]
count +=1
elif string[-1] == 'z':
a[i] = a[i][:-1]
count +=1
elif string[-1] == 'c':
a[i]=a[i][:-1]
count +=1
b+=a[i]+a[i+1]
break
print(a)
print(b)
print(count)
b =b.split("-")
c=""
for i in range(len(b)-1):
string = b[i]
if string[-1] == 'c':
b[i]= b[i][:-1]
count +=1
elif string[-1] == 'd':
b[i] = b[i][:-1]
count +=1
c+=b[i]+b[i+1]
break
print(b)
print(c)
print(count)
c=c.split("j")
d=""
for i in range(len(c)-1):
string = c[i]
if string[-1] == 'l':
c[i]= c[i][:-1]
count +=1
elif string[-1] == 'n':
c[i] = c[i][:-1]
count +=1
d+=c[i]+c[i+1]
break
print(c)
print(d)
print(count)
일단 문제에나온 크로아티아 문자를 변경했지만 큰 문제점이있엇다.
split할때 해당하는 문자열이없으면 망가져버렷다.
하는수없이 또 다른사람들의 풀이를 보고 풀었다.
더보기
이문제에서 제일 중요한 replace 를 몰랏다.
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
input = input()
for i in croatia:
input= input.replace(i,'s')
print(len(input))
일단 크로아티아 문자열을 리스트에담아두고,
forloop 을돌면서 해당하는 문자열을 s로 바꿔주엇다.
replace('해당문자' ,'바꿀문자')
그리고나서 len 으로 스트링 길이를 찍어주면됀다.
이렇게보니깐 쉽네...😩
백준2839 ,백준 1316
문제를 풀때, 바로 코딩을하려고하지말고, 단계별로 psudo code를 짜보면서 해보는게 도움이됌.
내일 학교 IFN564 알고리즘 기말고사를 위해
Bubble sort / Slection sort / Insertion sort 공부했다.
내일 기말고사만 끝나면 좀더 알고리즘 문제풀이에 집중해서 다음주 주특기 주차까지 40문제를 달성하는것을 목표로공부해야봐야곘다.
반응형
'IT > Bootcamp 항해99' 카테고리의 다른 글
[항해99] 13일차, 최소공배수, 최대 공약수? , 유클리드 호제법 (0) | 2021.06.19 |
---|---|
[항해99] 12일차 알고리즘 , 에라토스테네스의 체 (0) | 2021.06.18 |
[항해99] 9일차 10일차 알고리즘 문제 마라톤 (0) | 2021.06.16 |
[항해99] 8일차 알고리즘 (0) | 2021.06.15 |
[항해99] 6일차 알고리즘강의 (0) | 2021.06.13 |
댓글()