본문 바로가기

반응형

코딩 이야기

(100)
알고리즘 백트래킹에 대해 알아보자 서론 흠.. 특별히 쓸 글이 없어서 오늘은 백트래킹에 대해 알아보려한다. 백트래킹을 알면 백준 골드 문제도 많이 풀 수 있으니, 같이 오늘 알아보도록 하자. 백트래킹이 뭘까? 그대로 번역하면 뒤를 쫓다 정도의 해석이 가능하겠다. 하지만 실제 알고리즘은 그런 내용은 아니다. 백트래킹은 완전탐색의 연장선인데, 완전탐색을 하되, 굳이 탐색할 필요 없는 구간은 배제해버리고 완전탐색을 돌리는 것이다. 그렇기 때문에 당연히 재귀함수 혹은 for문을 사용하여 구현을 한다. DFS 개념에서도 방문하는 정점이 비효율적일 경우 배제하면서 순회하는 것 또한 백트래킹이라고 할 수 있다. 원래는 N-Queen 문제가 백트래킹의 유명한 문제인데, 아직 풀지 않아서 다른 문제를 올리도록 하겠다. 이제 백준 문제를 통해 백트래킹 문..
짱 쉬운 파이썬 강좌 #6 for문 서론 오랜만에 짱 쉬운 파이썬 강좌를 올리게 되었다. 지금 생각해보니 if문보다 for문을 먼저 올렸어야 했는데, 실수했다. 그래서 지금이라도 for문을 올리도록 하겠다. for문? 반복문? for문은 반복문의 한 종류로 같은 명령을 여러번 수행해야 될 때, 사용한다고 생각하면 편하다. 나중에 기초 알고리즘의 대표격인 브루트포스를 공부하게 된다면, 지금 for문을 더욱 집중해서 봐야할 것이다. 사용법 파이썬의 for문은 다른 언어의 for문과 형태가 많이 다르므로, 좀 주의 깊게 보도록 하자. for i in range(5): print(i) 이 코드의 결과를 예상해보자. 아마 0 1 2 3 4라고 생각한 사람이 있을 것이고, 1 2 3 4 5라고 생각한 사람이 있을 것이다. 물론 답은 0 1 2 3 4..
1년 반 코딩 공부한 학생은 무슨 프로그램(IDE)을 사용할까? 서론 원래 오늘은 영화에 대해 글을 쓰려했는데, 영 쓰이지가 않아서 그냥 오늘은 간단하게 내가 사용하는 프로그램들을 설명해볼까 한다. 난 아직 개발자라고 칭하기는 좀 그렇고, 그냥 코딩 공부하는 학생이라는 타이틀이 딱 어울리는 것 같다. 아무튼 내가 무슨 IDE, 그 외에 개발에 사용하는 여러 프로그램을 설명하려한다. 용도로 분류 파이썬, 데이터과학: 파이참(Pycharm), Colab c언어: xcode를 사용하다가 무거워서 그냥 웹디버거 사용중 자바: 이클립스(요즘은 거의 사용X 그래서 현재 지운 상태) 앱개발: 안드로이드 스튜디오(코틀린X, 자바) 게임 개발: 유니티(2019.4 에서 안올리는 중) Html, css, 자바스크립트, PHP: 비주얼 스튜디오 코드 그 외: Github 파이참 굳이 비..
Google colab(코랩) 사용법, Ai 클라우드 컴퓨터 서론 오늘은 코랩에 대해 설명해볼까한다. 나도 코랩을 최근에 알았고, 그 덕분에 잘 사용하고 있다. 만약 본인이 AI를 학습시키고 싶지만, 컴퓨터의 사양이 부족하거나 하다면 이 글에 집중해야한다. 그래서 colab이 뭐야? 코랩은 구글에서 만든 클라우드 컴퓨터 서비스이다. 말그대로 구글의 컴퓨터를 빌려서, 파이썬을 코딩할 수 있다. jupyter notebook을 기반으로 만들어졌으며, 구글 드라이브나 깃헙에 연동이 가능하다. 주로 AI, 데이터사이언스 등에서 이용되며, AI의 사용되는 Yolo, TensorFlow, Roboflow, matplotlib등을 임포트하여 사용할 수 있어, 저사양 노트북에서 AI를 학습시키고 싶다면 용이하게 사용할 수 있다. colab 사용법 콜랩을 키면 이런 화면을 나올 ..
마크업 언어란? 서론 오늘 뭘 써야되나 고민하다가 간단하게 프로그래밍 언어 하나 집어서 설명해야겠다싶어서 마크업 언어를 오늘 설명하도록 하겠다. 마크업 언어가 뭐야?? 마크업 언어도 프로그래밍 언어라고 봐야되나?라고 하면 좀 애매한 것 같다. 정확히는 문서 작업에 좀 더 가깝다. 마크업 언어의 예시로 우리가 흔히 알고 있는 것들이 있다. 주로 HTML, XML이 있다. 두가지를 분류하자면, html은 웹페이지, xml은 앱을 구성하는 마크업언어라고 보면 된다. 특징이라하면, c, java, python 처럼 어려운 개념이나 알고리즘이 필요 없이, 하나의 창작물을 만들어낼 수 있다는 점도 있고, 프로그래밍 언어처럼 이해가 필요하다기보단 암기가 필요한 언어이다. c언어는 ;가 없으면 컴파일이 안되듯이, 마크업 언어는 < /..
내가 코드몽키가 아니라 정말 개발자가 될 수 있을까? 서론 학교에서 자율동아리를 하면서 이런 생각이 들었다. 내가 하고 있는 자율동아리는 한 학기동안 한 하나의 주제를 가지고 그에 대한 API나 라이브러리 같은 것들을 활용하는 법을 배우며, 뭐 코드를 짜보고 그런 동아리인데. "차라리 이시간에 알고리즘이나 자료구조를 더 익히면 안되나?"라는 생각이 들었다. 물론 나의 생기부를 위해 억지로 하고는 있다만 좀 자괴감이 든다. 그 자율동아리에서 백준 그래프나 트리 문제로 골드4 수준 정도의 문제를 풀 수 있는 학생은 1명 정도 밖에 안될 것이다. 이런 API나 그런 것들은 나중에 배워도 늦지 않는데. 본론 난 지금 하는 코딩이 재밌다. 백준 등급이 높진 않지만, 그래도 알고리즘 문제에 대해 깊게 고민하는 것도 재밌고, 웹이나 앱에도 어느 정도 지식이 있어서, 이..
짱 쉬운 파이썬 강좌 #5 if문 서론 오랜만에 파이썬 강좌를 쓰게 됬다. 시험이 끝났음에도, 좀 몸살같은 것때문에 시리, 5일간 좀 피곤에 쩔어 살았는데, 주말에 푹자니, 좀 낫는 기분이다. 그래서 여유있게 파이썬 강좌를 쓰려한다. if문? 그게 뭐징... if문은 파이썬의 문법 중 하나로 조건을 걸어, 그 상황에 맞게 대응하기 할 수 있다. 아래에 if문을 활용한 유명한 프로그래머 짤이 있는데 보고 가자. 짤 설명을 하자면, 보통 일반인이라면, 마트에 가서 우유를 구매 후, 아보카도가 있다면 아보카도를 6개 사갈 것이고, 없다면 우유만 사가지고 갈 것이다. 하지만 이 짤을 컴파일러, 인터프리터 관점에서 본다면, 우유를 사 되, 아보카도가 있다면, 우유를 6개 사라는 것이다. 이 짤을 코드로 표현하면 대략 이렇다. mart = ["mi..
알고리즘 완전탐색(브루트 포스)에 대해 알아보자 서론 오늘은 금요일이다. 몸이 많이 지치고 힘들지만, 글은 써야하니까. 특히 요즘 글을 제대로 못쓰기 때문에 주말에는 좀 더욱 열심히 써야한다. 내일은 파이썬 강좌를 마저 쓰도록 하겠다. 완전탐색(브루트 포스)이 뭘까? 완전탐색은 말 그대로 모든 경우의 수를 전부 닥치는대로 해보는 것이다. 실생활에서 예를 들자면, 자물쇠를 열어야하는데, 열쇠 꾸러미 중 맞는 열쇠가 뭔지 모른다면, 열쇠 꾸러미에 있는 모든 열쇠를 다해보는 것처럼. 무식하게 전부 다 대입해보는 방법이다. 만들기 쉽고 간단하지만, 그만큼 수행시간이 상당히 긴 알고리즘이다. 완전탐색을 하는 방법은 이렇게 있다. for if 사용하기 비트마스크 재귀함수 BFS 그 중 가장 간단한 for if를 사용하는 방법을 알아보자. 예시 정렬되지 않은 배열..

반응형