오늘 학습한 내용
[알고리즘]
약수의 개수와 덧셈
로직 : 두 정수의 길이를 체크해서 정수의 약수가 짝수면 더하고 홀수면 빼는 것을 길이만큼 반복해야 겠다.
생각자체는 금방 떠올렸는데 문제는 이것을 코드로 구현하는데서 막혔다.
2중 반복문을 쓰면 될 것 같다고 생각은 했는데 약수가 짝수인지 홀수인지를
체크하는 과정에서 count의 초기화를 어디서 해야하는지 감을 잡지 못 했다.
한참을 고민하다 결국 질문하기 탭을 눌러서 다른 사람이 질문한 내용을 보고 감을 잡았다.
using System;
public class Solution
{
public int solution(int left, int right)
{
int answer = 0;
int length = (right - left) + 1;
int count = 0;
for(int i = 0 ; i < length; i++)
{
int num = left + i;
for (int j = 1 ; j <= num; j++)
{
if(num % j == 0)
{
count++;
}
}
if (count % 2 == 0)
{
answer += num;
}
else
{
answer -= num;
}
count = 0;
}
return answer;
}
}
다른 사람의 풀이
using System;
public class Solution {
public int solution(int left, int right) {
int answer = 0;
int count = 0;
for (int i = left; i <= right; i++)
{
for (int j = 1; j <= i; j++)
{
if (i % j == 0) count++;
}
answer += (count % 2 == 0) ? i : i * -1;
count = 0;
}
return answer;
}
}
오늘의 회고
해야 할 일
1. 프로젝트 개선하기
'TIL' 카테고리의 다른 글
2024/03/07 TIL (0) | 2024.03.07 |
---|---|
2024/03/06 TIL (0) | 2024.03.06 |
2024/02/26 TIL (0) | 2024.02.26 |
2024/02/23 TIL (0) | 2024.02.23 |
2024/02/21 TIL (0) | 2024.02.21 |