▶ 소수란? 자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수를 의미함
1) 입력값: 10
2) array만들기: [1,2,3, ..., 9,10]
3) 4의 경우, 4보다 작은 수(2,3)으로 나누어 0이 된다면 탈락시키기
# 입력값 선언
input = 150
# 함수 선언
# array 만들기
# input 이하의 자연수로 array 채우기(for)
# 결과를 담을 list 선언하기
# array의 각 자리에 접근하기(for)
# array의 담긴 수가 1이라면 담긴 수를 0으로 대체하기(if)
# array의 담긴 수가 2 또는 3이라면 그냥 지나가기(elif, continue)
# array의 담긴 수가 4 이상이라면(else)
# array의 담긴 수보다 작고 2보다 큰 수로 나눈 나머지가 0이라면 빠져나오기(if, break)
# 그렇지 않으면 결과에 첨부하기(.append)
# 결과 반환하기
1) 입력값: 010010
2) 이전과 다른 숫자가 나오면 기록하기: 0, 1, 0, 1, 0
3) 결과에서 중복된 개수 찾기: 0= 3개, 1=2개
4) 가장 적은 것: 2개
5) 각 자리에 있는 1을 2번 뒤집으면 최소한의 기회로 동일한 숫자를 만들 수 있음
# 입력값 선언
# 함수 선언
# 결과 array 선언
# 입력값을 하나하나 돌아다니며
# 입력값 자리 index가 0이면 입력값 결과 array에 0번째 숫자 넣기
# 입력값 자리 index가 0이 아니면,
# 만약 결과 array의 마지막 수와 현재 입력값의 자리 수가 같다면 지나치고(continue)
# 그렇지 않다면 결과 array에 현재 입력값의 자리수를 추가하라(.append)
# 결과 array의 중복 개수 출력하기(key:value)
# 오름차순으로 정렬하기
# 가장 적은 숫자 출력하기
코딩하는 시간보다 문제 해결을 위한 큰 그림, 문제 해결 전략 형성, 슈도 코드 만드는데 더 오랜 시간이 걸린다. 하지만 결과적으로, 최소의 시간으로 문제를 해결하는 유일한 방법일 것이다.
list.append('a')를 사용하면 list에 'a'가 추가된다.
이 때 주의해야 할 점은 list = list.append('a')로 작성하면 에러가 발생한다는 것이다.
자칫 헷갈려 위와 같이 작성할 수 있고, 문제가 무엇인지 인지하지 못할 가능성이 있다. 위와 같이 작성하여 1시간을 헤메었다. 시행착오라고 생각하고 다음부터는 꼭 기억하고 사용하자.
for i in range(10)
if i == 1:
break
위와 같이 사용할 경우 if문에서 탈출할까? 아니면 for문을 탈출할까? 정답은 for문을 탈출한다. 그러므로 break가 실현되면 for문은 더이상 돌지 않는다.