본문 바로가기
C/SWEA

[SWEA] #1933. 간단한 N의 약수

by 단월໒꒱ 2021. 10. 7.

Difficulty 1

 

[문제]

 

 

[코드 및 결과]

 

 

#include <stdio.h>

int main(int argc, char** argv) {
	int N;
    int divisor[1001];
    
    scanf("%d", &N);
    
    for (int i = 0; i <= N; i++) {
        divisor[i] = 0;
    }
    
    for (int j = 1; j <= N; j++) {
        if (N % j == 0) {
            divisor[j] = 1;
        }
    }
    
    for (int i = 0; i <= N; i++) {
        if (divisor[i] == 1)
        printf("%d ", i);
    }
    printf("\n");
    
    return 0;
}

 

 

 

 

[설명]

int형 divisor는 0부터 1000까지의 숫자가 들어가는 배열이다.

for문을 이용해서 divisor[0]부터 divisor[1001]까지의 값에 0을 저장해준다.

다시 for문을 이용해서 입력 받은 정수 N을 1부터 N까지의 수로 나눠주고 if문으로 나눴을 때의 나머지가 0이면 배열에 1을 저장한다.

마지막으로 for문으로 divisor 배열을 처음부터 끝까지 훑는데, 배열의 값이 1인 경우에만 출력하도록 한다.

 

)) testcase의 input에 들어있는 값이 1000인데 배열의 크기를 1000으로 해놔서 처음에 fail을 받았었다. 바로 배열의 크기를 1001로 바꿔주니 pass했다.

 

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5PhcWaAKIDFAUq&categoryId=AV5PhcWaAKIDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=2 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

'C > SWEA' 카테고리의 다른 글

[SWEA] #2046. 스탬프 찍기  (0) 2021.11.06
[SWEA] #1204. 최빈수 구하기  (0) 2021.10.10
[SWEA] #1948. 날짜 계산기  (0) 2021.10.01
[SWEA] #2025. N줄덧셈  (0) 2021.09.27
[SWEA] #1976. 시각 덧셈  (0) 2021.09.26

댓글