1주차 3번(셀프 넘버)

Hyo Kyun Lee·2021년 5월 23일
0

Python

목록 보기
21/26
post-thumbnail

1.문제 링크

https://www.acmicpc.net/problem/4673

2. 풀이 전 계획과 생각

  • 어떤 방식으로 로직을 구현할지 생각해보기
  • 배열을 만들면서 생성자를 제거할지, 생성과 제거를 별도로 할지 생각해보기

2-1. 풀이를 위한 접근방식

생성자가 아닌 셀프 넘버를 찾거나 그 규칙성을 찾는 것보다,
생성자를 찾고 이를 탐색에서 제외하는 방식이 더 효율적이다.

2-2. 풀이

n = 10000
array_test_case = []

for i in range(n):
    array_test_case.append(i + i // 10 + i % 10)

for j in range(n):
    if j not in array_test_case:
        print(j)
    else:
        continue



4. 풀이하면서 고민했던 점

  • 로직구현시간을 줄이려면 어떤 방식으로 생각하는 것이 좋을까

  • 알고리즘을 구현하는데 너무 시간이 오래걸린다
    다른 방향으로 생각하는 것도 중요하지만, 시간을 절약하는 것도 매우 중요하다.
    10분내외로 생각하고 알고리즘 구현하는 것까지 가능하도록 꾸준히 연습해보자.

  • 최대한 획기적이면서 신선한 로직만이 경쟁력!

5. 문제를 풀고 알게된 개념 및 소감

  • list.remove(value)
    list내 value(요소)를 제거한다.

6. remind

코드에 대한 이해가 우선이다. sugar syntax보다는 sugar logic!

0개의 댓글