2022.4.28. (목)
1. 오늘의 소감
- 코드스테이츠 크루님이 말하길, 개발 입문단계에서 입문자를 고통스럽게 하는 3대장이 있다고 한다.
- 1대장 반복문, 2대장 이중 반복문, 3대장 재귀...
- 반복문의 개념을 익히고 기본 반복문 문제를 풀 때까지는 좋았다. 하지만 이중 반복문 문제를 만나고 나서는(절레절레) 구구단 예제 정도야 음, 이렇게 쓰면 되겠다! 하고 바로 풀수 있었다. 하지만 출력값이 복잡한 문제를 만나니 머리가 아프다.
- 다음에 이중반복문을 만났을 때 당황하지 않기 위해서 파악한 팁을 써 본다.
- 이중 반복문 풀이법
- 우선은 문제를 이해한 뒤, 출력코드 3가지 예시 정도를 훑어보자. 입출력을 파악하는 게 먼저다.
- 공통점이 보인다면 예외처리와 함께 공통적인 부분은 미리 해치우는 게 좋다. 그래야 안 헷갈리니까.
- 적당한 출력문 예시를 골라 분석한다. 출력문이 너무 짧지도, 길지도 않은, 반복할 때 답이 잘 찍히고 있는지 빠르게 확인 가능한 예시로 고른다.
- 그 예시에서, 첫번째 반복문의 반복횟수를 파악한다. (초기값, 조건식, 증감문으로 연결짓기 위해)
- 예시의 첫번째 반복문의 각 반복 부분을 나눠서 본다.
- 각 부분에서 두번째 반복문의 반복횟수를 파악한다. (초기값, 조건식, 증감문으로 연결짓기 위해)
- 파악한 것을 바탕으로 의사코드로 정리한 뒤 코드를 작성한다.
2. 학습한 키워드
- for, while, break, continue, 초기화, 조건식, 증감문, 소수, 약수, 이중반복문, label, Math.sqrt()
3. 키워드를 바탕으로 학습 내용 설명해보기
- for(초기화; 조건식; 증감문) { }
- while(조건식) { }
- for 과 while 의 차이
- for은 초기화, 조건식, 증감문을 () 안에 한 번에 쓰는 반면, while은 ()안에 조건식만 쓰고 초기화는 주로 반복문 바깥에 증감문은 안에 쓴다.
- 보통 반복 횟수가 명확하면 for을 쓰고, 명확하지 않으면 while을 쓴다.
- 초기화와 증감문이 필요 없는 경우에는 while문을 쓴다.
- 초기화와 증감문이 너무 길어서 for문 조건식 안에 넣기 애매할 때 써도 좋을 것 같다.
- break 를 쓰면 반복문을 바로 빠져나올 수 있다.
- 단, 이중반복문 안에서 break문을 쓰면 가장 안쪽 반복문만 빠져나온다.
- continue 를 쓰면 해당 반복에서 다음줄로 다지 않고 다음 반복으로 넘어간다.
- break문과 continue문에 label을 붙여서 원하는 구간으로 이동시킬수 있다.
- 라벨명 : ~~~, break 라벨명; continue 라벨명;
- ‘라밸명 :’ 은 사용할 break 문이나 continue문 위에 있어야한다.
- label은 코드의 논리적인 흐름을 방해할 수 있기 때문에 지양된다.
- 소수 : 1과 자기자신만 약수로 가지는 자연수.
- 소수 구하는 법
- 1과 음수는 소수가 아니다.
- 2를 제외한 짝수는 소수가 아니다.
- 3 이상의 홀수 중에서 나눠지는 약수(홀수)가 있다면 소수가 아니다.
- → num 이하 홀수를 다 나눠볼 필요 없이 num의 제곱근 이하인 수 중에서 num을 나누어 떨어지는 게 있는지 확인하면 된다. (에라토스테네스의 체)
- Math.sqrt() 는 제곱근을 구하는 메서드.
728x90
반응형
'TIL' 카테고리의 다른 글
[TIL] #5. CSS 셀렉터 (0) | 2022.12.01 |
---|---|
[TIL] #4. HTML (0) | 2022.11.28 |
[TIL] #2. String 메서드 (0) | 2022.11.25 |
[TIL] #1. 첫 페어 프로그래밍 (0) | 2022.11.21 |
이전 TIL 포스팅 공지 (#1부터 #30까지) (0) | 2022.11.19 |