티스토리 뷰
오랜만에 글 작성 하는것 같네요 ㅎㅎ..
사실 머신러닝도 그렇고, iOS도 그렇고 욕심은 많아서 포스팅 하고 싶은 글들이 많은데.. 어쩌다보니 계속 미루게 되었네요. 다시 열심히 작성해 봐야겠습니다!
알고리즘 카테고리의 첫 포스팅인데, 앞으로 이 알고리즘 카테고리에 제가 푼 알고리즘 문제들을 올릴 것 같습니다. (알고리즘 실력이 너무 형편없어서 그냥 기록용으로 올릴 것 같습니다 ㅎㅎ..)
오늘은 알고리즘이 무엇인지와 순서도, 그리고 알고리즘 공부하기 좋은 사이트를 소개해드리려 합니다.
알고리즘 - 특정 문제를 해결하기 위해 논리적으로 기술해 놓은 일련의 명령문
프로그램 - 알고리즘을 컴퓨터가 이해하고 실행할 수 있는 특정 프로그래밍 언어로 표현한 것
순서도 - 미리 정의된 기호와 그것들을 서로 연결하는 선을 사용하여 프로그래밍의 여러 문제를 해결하는 데 필요한 논리적인 흐름을 그림으로 표현한 것
(솔직히 말하면, 저는 알고리즘 문제 풀 때 순서도 같은거 안그리고 푸는데, 교수님이 그렇게 순서도를 강조하시네요?? 다 이유가 있겠죠? )
온도가 30도 넘으면 '날씨가 덥다.' 라고 출력하고 온도가 30도가 넘지 않으면 '날씨가 덥지 않다'를 출력하는 정말정말 간단한 프로그램이 있다고 생각해 봅시다. 만약 이를 순서도로 나타내면 이렇게 나타 낼 수 있습니다!
그럼 프로그램을 짤 때 정말 자주 쓰는 반복문은 어떤식으로 표현 할까요?
이렇게 표현합니다!
만약 매 반복마다 i를 출력하는 순서도를 그린다고 하면 아래와 같이 나타낼 수 있습니다.
순서도 그리기에 익숙하지 않으면, 복잡한 알고리즘을 순서도로 표현할 때 많이 어려울 수 있습니다.
(제가 그랬거든요 ㅎㅎ 프로그램을 먼저 짜고 순서도를 나중에 그리는 뭔가 순서가 역전되어버렸다고나 할까요..?)
아무튼! 순서도 작성을 잘 하면, 프로그래밍 코드 보다는 한 눈에 더 잘 들어오고, 프로그래밍 언어가 달라도 순서도는 누구나 읽을 수 있으니까, 여러모로 많이 그려보면 좋을 것 같습니다!
마지막으로! 알고리즘 공부 사이트와 공부 방법입니다.
정말정말 다양한 알고리즘 공부 사이트가 있는 걸로 알고 있는데, 저는 백준과 프로그래머스를 이용해 봤습니다.
두 사이트 다 이용해본 결과 저는 프로그래머스가 좀 더 저 한테? 맞더라구여 ㅎㅎ 그리고 네이버, 라인, 카카오등 많은 IT회사들이 코딩테스트를 볼 때 프로그래머스를 이용하는 경우가 많아서 프로그래머스로 알고리즘 연습을 많이 하시면 좋을 것 같습니다.
백준 - www.acmicpc.net
프로그래머스 - programmers.co.kr
알고리즘 공부 방법
(사실 저도 잘 몰라요 ㅎㅎ.. 아래 순서가 정답이 아닐 수 있습니다. 하지만 정답은 없는거니까요!)
언어 선택 -> 언어 공부 -> 알고리즘, 자료구조 기초 공부 -> 다양한 문제 풀어보기
제가 막 알고리즘 공부를 시작한 입장에서 느낀 건, 해당 언어에 대한 이해도가 높으면? 좋은 것 같습니다. 해당 언어가 지원하는 모듈(라이브러리)과 내장함수들을 많이 알고 있으면, 문제를 푸는데 있어서 좀 더 수월 하더라구요. 그래서, 아직 언어에 대한 이해 혹은 공부가 부족하신 분이라면, 바로 알고리즘 공부로 넘어가시기보다, 그 언어에 대한 공부를 좀 더 하는 것을 추천 합니다!
(여러 변태들의 코드들을 보면서 느낀 점 입니다 ^^) (긍정적 의미의 변태입니다.)
읽어주셔서 감사합니다!
'알고리즘 > 정리' 카테고리의 다른 글
정규표현식(regex) 알아 보기, 어렵지 않아요! (2) | 2021.03.23 |
---|---|
기본 정렬 알고리즘 알아보기 with Python (0) | 2020.09.29 |
알고리즘 시간 복잡도와 빅오 표기법 (0) | 2020.05.28 |
댓글
링크
최근에 올라온 글
최근에 달린 댓글