2023. 6. 7. 02:21, 알고리즘/BOJ
int func(int n) {
int i = 1, sum = 0;
while (n > i) sum += i * i, n -= i++;
return sum + i * n;
}
위와 같은 코드를 접하게 되었고,
이때에 처음에
while(n>i) sum+=i*i, n-= i++; 형태로 작성되어있는 코드를 보았는데, 이 코드의 경우 지금까지와는 다른 형태로 작성되어있는 코드이기 때문에 처음에 굉장히 이해하는게 직관적으로 되지 않았다.
물론 , 를 통해서는, int a, b; 형태처럼 새로운 타입을 선언할때는 자주 보던 형태였는데, 이렇게 명령문을 두개를 이어서 한줄에 기입하는건 처음 보는 경우였다.
전체적으로 볼때, while(n>i) 문도 한줄짜리를 처리할 수 있도록 { } 없이 작성하였고, 한줄에 모두 담기 위해서 ,을 활용하여서
sum+=i*i , n-=i++; 형태로 작성한것 같은데,
이 코드의 경우는
while(n>i){
sum+=i*i;
n-=i++;
}
//혹은
while(n>i){
sum+=i*i;
n-=i;
i++;
}
형태로 작성되는것이 처음 바라보았을때 이해되기는 더욱 쉬운 형태의 코드가 아닐까 싶다.
물론 더욱 한줄에 , 간결해보이게 작성하는 형태는 whil(n>i) sum+=i*i , n-=i++;
형태일 수 있겠으나, 이렇게 몇줄 더줄이는 것보다 그냥 더욱 이해를 쉽게 만들어주는 형태로 줄을 늘리는게 나을것 같다.
'알고리즘 > BOJ' 카테고리의 다른 글
c++ binary_search , lower_idx, upper_idx 코드 구현 모음과 차이점 비교. (0) | 2023.06.07 |
---|---|
이분탐색, 이진탐색, 그리고 이진검색 트리 (0) | 2023.06.07 |
boj 1011번 문제를 통해 접하게된 sqrt() 함수에 대하여. (0) | 2023.06.06 |
boj 5347번 문제 LCM을 통해 배우게 되는 계산 중간 과정에서의 int overflow의 가능성. 그리고 해결법 세가지. (0) | 2023.06.05 |
boj 2312번 문제를 통해서 한참 잘못빠져들었던 에라토스테네스의 체의 구현 . (0) | 2023.06.05 |
Comments, Trackbacks