2024 - 09 - 10 TIL

e_zy·2024년 9월 10일

(오늘자 프로그래머스 문제)

최근 알고리즘을 풀며 어려운 점이 없어, 혼자서 푸는 재미에 맛들렸었는데 정말 간단해 보이는 이번 문제를 풀며 내가 어느 부분이 약한지 다시 한 번 느끼게 되었다. 최근에 풀었던 알고리즘 문제는 조건문에 관한 부분만 나와 조건문은 이제 익숙해진 것 같은데, 오늘은 조건문 + 반복문이 나와 헷갈렸던 것 같다.
위 문제에서 정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 구하라는 짧은 저 한 문장의 조건을 어떻게 코드를 짜야할 지 몰라 40분은 고민했다. 구글링을 하기 전까진 반복문을 써야한다는 것조차 몰라서 저 긴 시간을 고민했는데 구글링을 해보니 확실히 이해가 되었다.

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i =1;i <= n; i++){
            if(i%2 == 0){
                answer += i;
            }
        }
        
        return answer;
    }
}

문제의 정답은 이러했는데 정답을 알고나서 든 생각이 내가 반복문을 잘 모른다는 생각을 하게 되었다. 답을 보고나서 '아! 이거였는데 왜 몰랐지?' 라는 생각보다는 '아...반복문은 이럴 때 이런식으로 쓰는구나'라는 생각을 하였고 그 중에서도 for문이 상당히 생소하게 느껴졌다. 그래서 for문에 대해서 검색해보고, for문과 while문의 차이를 검색해보았다.
우선 for 문은 기본 구조가 for (; ; ;) { }를 가지고 있는데 첫 번째 ;에는 초기값을 몇으로 설정해서 시작할지를 정하는 부분이며 두 번째 ; 는 언제까지 반복할지, 세 번째는 증가를 시킬지 감소를 시킬지 정하는 구문을 넣으며 {} 부분에는 ()조건 문을 만족시켰을 때 실행되는 연산을 넣는다.

         for(int i =1;i <= n; i++){
            if(i%2 == 0){
                answer += i;

이 부분을 해석해보면 i는 1로 초기값을 가지며 i가 n보다 작거나 같을때까지 i의 값을 1씩 증가시킨다는 뜻이다.
또한 for 문과 while 문의 차이는

for: 반복할 횟수가 명확할 때
while: 조건을 만족하는동안 무한으로 반복

의 차이가 있다고 한다.
알고리즘을 통해 내가 어느 부분이 약하고 어느 부분이 잘하는지에 대해 알게 되는거 같아 좋았고 모르는 부분에 대해 조금 더 집중적으로 찾아보고 공부할 수 있다는 점에서 좋았던 것 같다.

profile
코딩 왕초보

0개의 댓글