[항해99] 11일차 알고리즘

IT/Bootcamp 항해99|2021. 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문제를 달성하는것을 목표로공부해야봐야곘다. 

반응형

댓글()