[이상선의 10분 강의 알고리즘] 1. 수열 알고리즘 -1

in kr •  6 years ago 

슬라이드1.png

알고리즘

안녕하세요. 하루 10 분 강의 알고리즘편입니다.

이 강의는 C언어 강의를 전부 수강한 분께서 들으면 매우 적합한 강의입니다.
처음부터 풀기 어려운 알고리즘을 하지 않고 초급부터 할 예정이지만,
C언어 문법을 모르고 공부하는것은 매우 어려울 것이라 생각하므로
필수로 C언어 기초를 배우고 와서 도전해보시길 바랍니다.

일단, 짧고 굵게 개념부터 이해하고 가시죠!

알고리즘이란?

= 문제를 해결하는 절차적 과정.
간단한 명령들로 구성된 일련의 단계.

알고리즘의 요건

= 단계가 단순해야 한다.
무한 작업이 생성되어서는 안된다.
효율적이어야 한다.
입력과 출력이 존재하여야 한다.

프로그래밍과 알고리즘의 관계

= 명령문을 논리적으로 전개하는 것.
문제를 해결하고자 하는 것들을 질서있게 나열한 문장.

최대한 짧고 굵게 적으려고 노력했습니다.
이론적인 것 보다 대부분 C언어를 알고 계실 것이라 생각하고 적는 파트이기 때문에
더 자세한 알고리즘 개념에 대한 내용을 원하시면
아래 링크를 참고하여 주시길 바랍니다.

https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

출처 : 위키백과

슬라이드2.png

풀이

슬라이드3.png

#include <stdio.h>

void main() {

int i, sum = 0;

for (i = 1; i <= 100; i++) {
    sum += i;
}

printf("총 합계는 : %d입니다.\n", sum);

}

생각보다 간단하죠?
C언어로 구현하는 것도 어렵지 않습니다.
이 코드는 단순히 반복문 한 번으로 1항부터 100항까지의 합계를 sum 변수에 누적합니다.

자! 이 알고리즘을 쉽게 해결하였다면 이번에는 응용된 알고리즘을 풀어봅시다.

문제

4.png

풀이

5.png

#include <stdio.h>

void main() {

int i, sum = 0;
for (i = 1; i <= 100; i++) {
    if (i % 2 == 0) {
        sum -= i;
    }
    else {
        sum += i;
    }
}
printf("총 합계는 : %d 입니다.", sum);

}

아까보다 확실히 조금 더 어려운 코드입니다. 하지만 이 알고리즘도 생각보다 쉽습니다.
문제를 잘 보면 홀수항에는 +연산이, 짝수 항에는 -연산이 되기 때문에 if ~ else로 홀수항인지 짝수항인지 먼저 판별하여
sum이라는 합계변수에 누적하면 됩니다.
간단하죠?

어떠셨나요?
수열 알고리즘, 생각보다 쉽지 않으셨나요?

앞으로 나오는 기초 알고리즘과 중급, 고급 알고리즘은 생각보다 어려운 친구들이 많습니다!
하지만 차근히 하나 둘 풀다보면 어느새 알고리즘과 자료구조 응용 및 해결 방법이 보일 거에요.

코드는 무조건 적고 이해하고 또 적는 것입니다.

이번주도 매우 고생 많았습니다.
더욱 재미있는 코드로 찾아뵙겠습니다.

공부하는 여러분 파이팅입니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Sending you 0.001 SBD! Woot! To claim from the faucet, simply comment anywhere on SteemIt "I want to receive a payout from the @hodlorbust faucet!" https://steemit.com/steem/@hodlorbust/all-new-community-driven-steem-and-sbd-faucet

Sending you 0.018 SBD and 0.000 STEEM! Woot!

What is this? Please explain precisely