티스토리 뷰

오랜만에 글 작성 하는것 같네요 ㅎㅎ.. 

사실 머신러닝도 그렇고, iOS도 그렇고 욕심은 많아서 포스팅 하고 싶은 글들이 많은데.. 어쩌다보니 계속 미루게 되었네요.  다시 열심히 작성해 봐야겠습니다! 

 

알고리즘 카테고리의 첫 포스팅인데, 앞으로 이 알고리즘 카테고리에 제가 푼 알고리즘 문제들을 올릴 것 같습니다. (알고리즘 실력이 너무 형편없어서 그냥 기록용으로 올릴 것 같습니다 ㅎㅎ..) 

오늘은 알고리즘이 무엇인지와 순서도, 그리고 알고리즘 공부하기 좋은 사이트를 소개해드리려 합니다. 

 


 

알고리즘 - 특정 문제를 해결하기 위해 논리적으로 기술해 놓은 일련의 명령문

프로그램 - 알고리즘을 컴퓨터가 이해하고 실행할 수 있는 특정 프로그래밍 언어로 표현한 것 

 

순서도 - 미리 정의된 기호와 그것들을 서로 연결하는 선을 사용하여 프로그래밍의 여러 문제를 해결하는 데 필요한 논리적인 흐름을 그림으로 표현한 것

(솔직히 말하면, 저는 알고리즘 문제 풀 때 순서도 같은거 안그리고 푸는데, 교수님이 그렇게 순서도를 강조하시네요?? 다 이유가 있겠죠? )

 

순서도 기호와 의미는 조금씩 다를 수 있습니다! 

 

온도가 30도 넘으면 '날씨가 덥다.' 라고 출력하고 온도가 30도가 넘지 않으면 '날씨가 덥지 않다'를 출력하는 정말정말 간단한 프로그램이 있다고 생각해 봅시다. 만약 이를 순서도로 나타내면 이렇게 나타 낼 수 있습니다!

 

그럼 프로그램을 짤 때 정말 자주 쓰는 반복문은 어떤식으로 표현 할까요? 

이렇게 표현합니다! 

 

만약 매 반복마다 i를 출력하는 순서도를 그린다고 하면 아래와 같이 나타낼 수 있습니다.

 

순서도 그리기에 익숙하지 않으면, 복잡한 알고리즘을 순서도로 표현할 때 많이 어려울 수 있습니다.

(제가 그랬거든요 ㅎㅎ 프로그램을 먼저 짜고 순서도를 나중에 그리는 뭔가 순서가 역전되어버렸다고나 할까요..?)

아무튼!  순서도 작성을 잘 하면, 프로그래밍 코드 보다는 한 눈에 더 잘 들어오고, 프로그래밍 언어가 달라도 순서도는 누구나 읽을 수 있으니까, 여러모로 많이 그려보면 좋을 것 같습니다! 

 

 

마지막으로!  알고리즘 공부 사이트와 공부 방법입니다.

 

정말정말 다양한 알고리즘 공부 사이트가 있는 걸로 알고 있는데, 저는 백준과 프로그래머스를 이용해 봤습니다.

두 사이트 다 이용해본 결과 저는 프로그래머스가 좀 더 저 한테? 맞더라구여 ㅎㅎ 그리고 네이버, 라인, 카카오등 많은 IT회사들이 코딩테스트를 볼 때 프로그래머스를 이용하는 경우가 많아서 프로그래머스로 알고리즘 연습을 많이 하시면 좋을 것 같습니다. 

 

백준 - www.acmicpc.net

프로그래머스 - programmers.co.kr

 

알고리즘 공부 방법

(사실 저도 잘 몰라요 ㅎㅎ.. 아래 순서가 정답이 아닐 수 있습니다. 하지만 정답은 없는거니까요!) 

 

언어 선택 -> 언어 공부 -> 알고리즘, 자료구조 기초 공부 -> 다양한 문제 풀어보기 

 

제가 막 알고리즘 공부를 시작한 입장에서 느낀 건, 해당 언어에 대한 이해도가 높으면? 좋은 것 같습니다.  해당 언어가 지원하는 모듈(라이브러리)과 내장함수들을 많이 알고 있으면, 문제를 푸는데 있어서 좀 더 수월 하더라구요. 그래서, 아직 언어에 대한 이해 혹은 공부가 부족하신 분이라면, 바로 알고리즘 공부로 넘어가시기보다, 그 언어에 대한 공부를 좀 더 하는 것을 추천 합니다! 

(여러 변태들의 코드들을 보면서 느낀 점 입니다 ^^)  (긍정적 의미의 변태입니다.) 

 

읽어주셔서 감사합니다!

댓글
링크
최근에 올라온 글
최근에 달린 댓글