[항해99] 14-15일차 오늘도 알고리즘

IT/Bootcamp 항해99|2021. 6. 21. 23:38

항해 99

 

14일차 :

일요일.  공부할려고했는데 잘안됬다.  문제는 못풀어보고  코드잇 에서 사논 알고리즘 강의를들었다. 요즘 알고리즘 때문에 많이 힘들었는데, 얘기를 나눠본 보통 대다수의 사람들이 나랑 비슷한 처지인것같앗다. 다들 스파르타 에서준 알고리즘강의를듣는다던지,  인프런, 유튜브 등에서 강의를 찾아서 듣는사람들도있었다. 문제를 다푸는것도 중요하지만, 기본을 잘 정리해서 내것으로 만든후 알고리즘 문제연습을 꾸준히하는게 좋을것같다. 알고리즘 주차가 끝나도 하루에 한문제씩 풀면서 계속연습을 해야될것으로 보이니, 너무 조급해하지말고 기초부터 탄탄히 쌓아야겠다.            

 

 

15일차 : 

월요일. 

 

백준 문제 10828 :

더보기

이문제는 오랫만에 혼자서 다풀었다.

생각보다 input 받을때 간단히 input() 으로 받는것보다 다른것들이 훨신 더빨리받을수있다.

 그외로 

stack=[]을 for문 안에넣거나 이상한 짜잘한 실수를 계속하는데... 이건 계속 연습을해야 늘것같다

#10828

import sys


N = int(sys.stdin.readline().rstrip())
stack=[]

for i in range(N):
    command = sys.stdin.readline().split()
  
    #print(command)
    if command[0] == "push":
        stack.append(command[1])
       

    elif command[0] == "pop":

        if stack:
            print(stack.pop())
            
        else:
            print("-1")    
     

    elif command[0] == "top":
        if len(stack) > 0: 
            print(stack[-1])
        else:
            print("-1")
           
        
    elif command[0] == "size":
      
            print(len(stack))
      
     

    elif command[0] == "empty":
        if len(stack) > 0:
            print("0")
        else:
            print("1") 
             


 

 

백준문제 : 10773

더보기

지금까지 푼문제중에 제일 쉬운문제였던것같다

#10773



import sys


N = int(sys.stdin.readline().rstrip())
stack=[]

for i in range(N):
    command = int(sys.stdin.readline())

    if command == 0:
        stack.pop()
    elif command >0:
        stack.append(command)

print(sum(stack))            

 

백준문제9012

더보기

처음에는    ((( 랑 ))) 를 나눠서 서로 다른 리스트에넣어주고 마지막에 

두리스트의 길이가 다르면 NO 맞으면 YES로 나오게했다.

 

하지만  ((()()(()))(((())))() 

이런 경우는  ( 와 ) 의 수가 같지만 ( 얘랑 )가 짝이맞지않는다. 

 

그래서  받은 스트링을 앞에서부터 돌면서 ( 이면, 리스트에넣어주고

) 가나오면 리스트에넣어둔 ( 를 pop했다.

만약 ) 이게나왓는데 리스트가 비어있거나 ,  모두다 돌앗는데 ( 가 남아있으면 NO가나온다

# 9012
import sys
N = int(sys.stdin.readline().rstrip())
for i in range(N):
    stack=[]
    input = sys.stdin.readline()
    for i in input:

        if i == '(':
            stack.append(i)
        elif i == ')':
            if stack:
                stack.pop()
            else:
                print("NO")
                break    
    else:
        if not stack:
            print("YES")
        else:
            print("NO")                

 

 

동민님이 주신 TIP:

더보기

 

반응형

댓글()