8.15 - daily diary

반응형

이코테 교재 chapter 4 - 구현 , 시뮬레이션 

구현이란 ' 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'이다. 

어떤 문제를 풀든 간에 소스코드를 작성하는 과정은 필수이므로 구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함한다.

 

구현하기 어려운 문제라하면 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제, 특정 소수점 자리까지 출력해야하는 문제, 문자열이 입력으로 주여졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는(파싱을 해야하는) 문제 등이 까다로운 구현 유형의 문제라고 할 수 있다.

 

대체로 사소한 조건 성정이 많은 문제일수록 코드로 구현하기가 까다롭다. 

 

파이썬의 itertolls와 같은 표준 라이브러리로 쉽게 짜는 방법도 있다. 이는 언어의 문법을 잘 이해하고 경험이 있어야만 바로 떠올릴 수 있는 해결 방법이다. 

 

완전 탐색 - 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 

시뮬레이션 - 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행해야하는 문제 유형.

 

+ 백준 1009 번 같은 경우 입력을 받고 나머지의 경우의 수에 따라 조건을 달리하여 출력해야함.

문제는 단순한데 코드가 복잡한 경우에 해당함. 

문제 그대로 풀게 되면 시간 초과로 탈락

import sys 
input = sys.stdin.readline

t = int(input())
for _ in range(t):
    a,b = map(int, input().split())
    aa = a%10
    
    if aa == 0:
        print(10)
    elif aa in [1,5,6]:
        print(aa)
        
    elif aa in [4,9]:
        bb = b%2
        if bb == 0:
            print(aa*aa%10)
        else:
            print(aa*bb%10)
            ,

디자인 패턴은 cs 파트에서 정리

반응형