• 목록
  • 아래로
  • 위로

안녕하세요?


프로그래머스 코딩테스트 연습이 전반적으로 예전보다 효율성 심사가 강화되었다고 알고 있는데요.


제가 알고리즘 인강을 수강하고는 있지만 아직 실력이 부족해서 효율성 심사에서 걸리는 경우가 많더군요.



제 짧은 생각으로는 선형탐색보다는 이진탐색이 바람직할 것 같구요.


재귀함수 등을 사용하지 않는 방향으로 해서 함수 호출을 최소화하는 것이 효율적일 것으로 생각되구요.


몇몇 풀이를 보니 리스트의 원소를 remove 하는 방식도 피해야 할 것 같은데요. 



제가 아직 알고리즘의 복잡도(Complexity of Algorithms)란 개념에 대해서 충분히 파악하지 못하고 있는 것 같은데요.


어떤 방향으로 코딩을 하는 것이 효율성 측면에서 바람직한지, 


그리고 어떤 서적이나 인강으로 공부를 하면 효율적인 알고리즘을 구현할 수 있는지 여쭤봅니다 ^^


구글링해보면 프로그래머스 코딩테스트의 개별적인 문제풀이에서의 효율성을 높이는 방식은 찾을 수 있던데


물론 구체적인 사안도 궁금하지만, 알고리즘의 전반적인 측면에서 질문을 드립니다.


그럼 즐겁고 뜻깊은 연말 되세요!


답변해주실 고수님들께 미리 감사드립니다 :)

작성자
이니스프리 119 Lv. (2%) 4181430/115200000EXP

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 2

title: 황금 서버 (30일)humit
profile image

아무래도 자료구조에 대한 이해가 가장 중요합니다. 어떤 자료형을 쓰느냐에 따라서 수행 시간이 천차만별로 달라지거든요.

예를 들어 ArrayList와 LinkedList가 있는데, 추가/삭제를 하는 경우에 ArrayList는 느리지만 LinkedList는 빠릅니다. 반면 인덱스 조회를 하는 경우에 대해서는 ArrayList는 빠르지만 LinkedList는 느립니다.

특히 노드에서의 최단거리를 찾는 알고리즘인 다익스트라 알고리즘의 경우에 어떤 자료형을 쓰느냐에 따라서 시간 복잡도가 달라집니다.

 

다만 특수하게 사용되는 자료형들이 있어서 이 경우에는 모르면 풀지 못하는 경우가 있습니다. 예를 들어 2020년 카카오 블라인드 1차 테스트의 경우 효율성 테스트를 통과하기 위해선 trie라는 특수한 자료형을 사용할 필요가 있습니다.

 

이렇게 전반적인 자료형에 이해를 하시고 나면 그 후에 Big-O notation이라고 하는 방식으로 대략적인 수행시간을 계산합니다. 보통 10^9 이하로 나오면 안전하다고 보시면 되겠습니다.

comment menu
2019.12.25. 13:36

신고

"humit님의 댓글"

이 댓글을 신고 하시겠습니까?

이니스프리 작성자 → humit
profile image

즐거운 크리스마스 보내고 계시는지요?

휴일인데 답변해주셔서 감사합니다 ^^

 

역시 자료구조가 중요하군요~!

연말이라 무리를 했는지 병원 신세를 지고 있어서, 요새 알고리즘 인강을 수강 못 하고 있거든요 ㅠㅠ

더 공부를 해야 humit 님께서 말씀해주신 내용을 완전히 이해할 수 있을 것 같네요.

Big-O notation에 대한 부분도 인강에서 언급하던데 아직 개념을 완전히 파악하지 못했네요.

앞으로 자료구조에 대한 공부를 더 하겠습니다~

 

그럼 뜻깊은 연말 되세요!! 감사합니다 ^-^

comment menu
2019.12.25. 13:45

신고

"이니스프리님의 댓글"

이 댓글을 신고 하시겠습니까?

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 시스템 점검 작업 완료 안내 10 마스터 24.09.05.16:25 2454
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 23.01.14.02:23 9568
공지 [필독] 질문하는 방법 17 마스터 18.02.23.03:09 4886
프로그래머스 코딩테스트 연습에서 효율성 심사를 통과하려면 어떻게 해야할까요? 2 이니스프리 19.12.18.01:55 2916
645 논논비요리 만화책을 보려고 하는데 일본어를 얼마나 공부해야 될까요? 4 image 이니스프리 19.12.15.16:38 498
644 머신러닝 오프라인 강좌를 수강해보려고 하는데요~ 이거 괜찮을까요? 5 image 이니스프리 19.12.11.03:12 506
643 프로그래머스의 코딩테스트 연습과 COS PRO 난이도에 대해 질문 드립니다. 5 이니스프리 19.12.08.22:26 513
642 Crontab에서 파이썬 실행이 시간적으로 겹치는 것과 관련하여 질문 드립니다 ^^ 이니스프리 19.12.06.01:06 1435
641 [파이썬] 롯데백화점 크롤링과 관련하여 질문을 드립니다 2 image 이니스프리 19.12.04.21:56 409
640 노트북 발열 문제를 잘 잡는 분 계실까요? 6 이니스프리 19.12.04.19:04 305
639 데스크탑이냐 랩탑이냐, 그것이 문제입니다. 29 네모 19.11.28.14:15 386
638 error page 설정은 어떻해야할까요? 2 슬기 19.11.24.21:27 356
637 Amazon, Jomashop 등 대형 사이트에서는 크롤러를 어떻게 감지하나요? 10 이니스프리 19.11.24.15:12 1792
636 기계식 키보드 추천을 부탁드립니다! 20 갱생협스 19.11.24.12:56 309
635 네이버 사전을 크롤링할 때 한자의 인코딩 관련 하여 질문 드립니다. (일부 한자만 깨지는 현상) 21 image 이니스프리 19.11.22.16:22 1307
634 윈도우 NTFS에서 확장자의 대소문자가 구별되나요? (파이썬 pathlib.Path(file).suffix 관련) 9 이니스프리 19.11.19.00:50 1492
633 코딩 컨벤션상 전역변수와 지역변수의 변수명을 동일하게 하는 것이 무방한가요? 4 이니스프리 19.11.17.18:09 535
632 카카오 API OCR의 인식률은 어떤가요? 1 이니스프리 19.11.16.22:31 1674
631 3.5인치 외장하드 케이스에 SSD를 연결하면 전압과 관련된 문제가 발생할까요? 3 이니스프리 19.11.16.02:04 489
630 국내 유료 웹호스팅 사이트 추천을 부탁드립니다 14 이니스프리 19.11.16.00:09 357
629 윈도우7 익스플로러11에서 인터넷옵션/시작옵션/마지막 세션의 탭으로 시작이 작동이 안됩니다. 3 kyhsyou 19.11.15.10:54 348
628 구글 애드센스 잘아시는분 있나유? 2 슬기 19.11.14.23:54 310
627 스포어 호스팅 사용 중에 실수로 반복문을 잘못 돌리면 계정이 정지되나요? ㅠㅠ 2 이니스프리 19.11.14.00:25 575