본문 바로가기

*Algorithm/Theory4

[Algorithm 알고리즘] 코딩 테스트 입문자를 위한 빅오 표기법 개념! 자료구조를 배우고 난뒤 알고리즘에 처음 입문하게 되면 떡 하니 그래프가 보이는것이 있다. 바로 빅오 표기법 이라는 것이다. O(N) 이러한 형식상의 표기는 이해가 가지만 만약 처음 배운다면 이걸 그래서 알고리즘하고 어떻게 적용하라는거지? 라는 생각이 문득 들었던 경험이 있었다. 빅오 표기법을 대하는 마인드셋? 결론부터 말하자면, 알고리즘 학자가 될게 아니라면 이 빅오 표기법은 알고리즘을 처음 배우는 사람 입장에서는 그냥 이런게 있구나 라고 한 번 생각하고 넘어가면 된다. 아마 대다수 이 글을 읽으시는 분들은 "코딩 테스트"를 염두해 두고 있으실거라 생각한다. 순차 탐색이 O(n) 이진 탐색이 O(logn) . . . 이해도 못한 채 100날 봐바야 그냥 활용하지 못하는 지식에 불과하다. 이 지식이 어떻게.. 2021. 11. 29.
[파이썬 Python] 온라인 코딩 테스트(알고리즘)를 위한 나만의 팁 노트 모음집 오직 코딩 테스트(알고리즘)를 위한 나만의 팁들을 적어놓은 글입니다. 파이썬 코드의 이점상 특정 라이브러리를 쓰면 편한 경우도 많지만, Low한 언어를 기반과 덧붙여 학습한다면 보다 쉽게 이해 할 수 있을거라 생각합니다. 또한 특정 기업에서는 언어를 지정하여 해당 언어만으로 테스트를 볼 수 있도록 지정 해 놓는 경우가 있기에, 더욱 더 Low한 풀이에 신경을 써야겠다는 생각이 많이 들었습니다. 그래야만 해당 언어의 자료구조로 만으로도 쉽게 풀이가 가능하다고 느꼈기 때문입니다. (1) 리스트 안에 'A'가 존재하는지 확인하는 코드 1 2 3 4 5 6 7 8 list = ['a', 'b', 'c'] is_a_Exist = False for i in range(len(list)): if(list[i]=='a.. 2021. 5. 17.
[Algorithm] 쉽게 이해하는 소수찾기 알고리즘 : 에라토스테네스의 체(파이썬) 본 글에서는 전체 큰 틀을 잡기 위한 기초적인 에라토스테네스의 체를 구현하였습니다. 크게 에라토스테네스의 체가 무엇이고 왜 나왔으며 파이썬 코드로 어떻게 표현하는지에 초점을 맞춰 글을 작성하였고 글을 읽어 나갈 때 컴퓨터의 자원에 대한 관점으로 읽어나가시면 됩니다. :) Contents * 에라토스테네스의 체 ㄴ 개념이 뭔데? ㄴ 왜 나오게 되었을까? ㄴ 어떻게 표현할 것인가?(파이썬) 에라토스테네스의 체 란 무엇인가? 1) 이론 : 내가 원하는 수까지 소수를 빠르게 찾는 알고리즘 소수란 무엇인가? : 2보다 큰 자연수에 대해, 1과 자기 자신 이외의 다른 양의 정수로 나누어 떨어지지 않는 수(1은 소수가 아니다) Ex) 2,3,5,7,11..... 2) 왜 에라토스테네스의 체라는 개념이 나오게 됐을까?.. 2020. 12. 27.
[Algorithm] 알고리즘 : 유클리드 호제법(최대공약수 구하는 알고리즘) 유클리드 호제법 개념 최대공약수를 구하는 하나의 알고리즘(문제 해결 방식) ㄴHow? 큰 수를 작은 수로 나누어 나머지가 0이 되도록 만들어 주는 수가 최대공약수(GCD) 왜 나오게 됬을까? 일반적으로, 최대공약수를 구할 때에는 두 수 각각을 소인수 분해하여 공통된 소수를 찾으면 된다. 16 = 2 * 2 * 2 * 2 24 = 2 * 2 * 2 * 3 최대공약수 : 8 컴퓨터의 세계에서 두 수가 적을 때에 위의 방식은 정말 편하다. 하지만 엄청난 큰 수로 구하려고 한다면 어떻게 될까? (23123과 1231424 등) 엄청난 큰 수를 쪼개고 쪼개고 하게 된다면 시간적 소모가 크고, 메모리적 낭비가 발생할 수밖에 없다. (시간 대비 결과, 메모리 공간적 대비 결과가 낭비가 된다.) Ex) 1분이면 끝낼 .. 2020. 10. 13.