전체 글 468

오버피팅이란? overfitting

오버피팅이란 용어를 처음 듣게 되었는데 감이 잡히지 않아 정리하게 되었다. 간단히 정리하면 공통 특성 중 일부 특성만 너무 편향되어 반영된 상태로 학습되면 새로운 데이터로 막 예측해버리는 모델인 UnderFitting이 되는 것이고 만약 공통 특성 중 지엽적인 특성까지 반영하여 high variance 하게 학습하게 되면 새로운 데이터에 대해서는 예측하지 못하는 모델인 overfitting이 되는 것이다. 아래 블로그에 상당히 쉽게 설명되어 있다. https://nittaku.tistory.com/289 10. 오버피팅 및 언터피팅 이해 및 극복하기(bias, variance를 통한 Regularization(lr) / Early Stop / Dropout) 캡쳐 사진 및 글작성에 대한 도움 출저 : 유..

인공지능 2021.08.27

2021AI엔지니어 고급반 - YOLO with deep learning 교육 프로그램 참가 후기 5일차

드디어 끝이 났다. 어제 밤과 오늘 아침이 제일 바빴다고 생각한다. 언제 이렇게 몰두해서 무언가를 해봤었는지 기억이 가물가물했는데 재밌어서 그런건지 아니면 새로운 분야라 내게 자극을 준것인지 어떤 이유에서인지 모르겠지만 정말 몰두해서 작업했다. 내가 모르는 기술 즉 처음 본 기술을 본 누군가는 그 기술이 마법같아보인다고 했다. 마찬가지다. 일반적인 코딩만 하면서 구조를 만드는 작업에서는 딥러닝을 이용한 작업에서 마주치는 문제들과 전혀 결이 다르다. 확실히 다른 분야라는 것을 느끼게 되었다. (알고리즘을 무엇을 선택하고 어떻게 관계를 맺을지 혹은 어떤 책임을 부여할지 고민하는 것과는 확연히 다른 고민을 하게 되었다. 이 프로그램의 경우 주로 어떻게 데이터셋을 구성해야 좋은 결과가 나올까? 혹은 왜 이런 결..

인공지능 2021.08.27

수재는 천재를 이길 수 있다 - 김포프

김포프님 영상을 가끔씩 찾아보는데 꽤 재밌는 영상이 있어서 내용을 간략하게 정리해놨다. 별생각없이 봤지만 영상을 보고 나서 스스로 많은 고민을 해본 영상이다. 그만큼 반성도 했고 잘했다는 만족감도 느낀 내용이었는데 공감하는 부분이 많아서 기억에 꽤 남는다. 항상 좋은 말씀을 해주시는 분이다. 천부적으로 무언가를 잘하는 사람은 있다. 노력해서 늘리는 것을 수재라고 한다. 수재가 천재를 누를 수 있다? 80프로 맞는 말이라고 생각한다. 세상 사람들이 모든 여건을 갖추고 살지는 않는다. 세상은 어차피 공정하지는 않다. 단지 돈의 문제를 떠나서 타고난 재능은 다르다. 하지만 내가 재능이 없더라도 정말 노력을 한다면 어느 한 분야는 잘할 수 있게 된다. 천재가 노력을 하게 된다면 이길 수 없는 것은 맞다. 하지만..

개발 유튜버 2021.08.26

2021AI엔지니어 고급반 - YOLO with deep learning 교육 프로그램 참가 후기 4일차

오늘은 4일차가 되었다. 3일차에 학습을 완료하고 테스트를 진행했는데 조금 부족한 부분이 있어서 오늘 개선시키기로 했다. 하지만 방향을 어디로 잡을지에 대해서 고민이 있어서 강사님께 궁금한점을 여쭤보고 이를 통해 방향성을 잡기로 했다. 아래는 내가한 질문과 그에 대한 답변의 요약본이다. 주의: 말씀을 급하게 받아치느라 잘못들은 내용이 있을 수도 있음. 개요: 일단 현재까지의 상황을 말씀드리면 일단 지금 두명이 (인종별) 데이터를 돌려보았다. 학습이 끝나고 그래프도 잘 나왔고 가장 좋은 인식률이 93프로가 나왔다. 이후에 테스트 이미지로 확인해보았는데 흑인 백인 황인이미지를 줬을때 모두 잘 인식했다. 웹캠으로 제 얼굴을 확인했을때도 yellow(황인)로 잘 인식했다. 하지만 아직 부족한 부분이 있어서 어느..

인공지능 2021.08.26

모두를 위한 인공지능 by 제프 딘

사람들은 어떻게 컴퓨터를 사람처럼 똑똑하게 만들지에 대해 연구해왔다. 사실 컴퓨터를 어떻게 똑똑하게 만들 수 있을까에 대한 학문이다. 최근 알게 된 사실은 컴퓨터에게 모든 것을 알려주는 것이 좋은 방법은 아니라는 것을 알게 되었다. 스스로 배우게 하는 것이 가장 좋다. 훈련을 시킨다. 잘못 인식하면 조금씩 수정을 가한다. 다음에 봤을때는 올바른 결과물을 낼 수 있도록 하는 것이다. 이렇게 머신러닝 모델을 수정해가며 올바른 결과에 다가서는 것이다. 그 다음 단계는 추론이다. 이전에 보지 못했던 것을 통해 정답을 알아내는 것이다. 가장 많은 진보가 있는 곳이 있었다. 컴퓨터 비전이다. 음성과 언어 이해 분야에서도 큰 발전이 있었다. 구글은 텐서플로와 같은 오픈 소스 패키지를 제공하고 있다. 누구든 머신러닝을..

개발 유튜버 2021.08.26

2021AI엔지니어 고급반 - YOLO with deep learning 교육 프로그램 참가 후기 중간 결과물

3일차에 돌린 학습이 6시간에 걸친 끝에 끝마쳤다. weight파일들도 잘 형성되었다. 인식률이 조금 아쉽긴한데 테스트를 진행할 정도가 되었다고 판단하여 테스트를 진행해보았다. 아래는 흑인, 백인, 황인 별로 랜덤 이미지를 부여하여 잘 인식하는지 테스트하였다. 결과는 셋 모두 아주 잘 인식하였다. 다만 백인의 경우 인식률이 조금 떨어지는 결과를 보였다. (내가 맡은 클래스가 백인 클래스였는데 아마 내가 라벨링을 조금 섬세하게 하지 못한 탓인것 같다. 죄송합니다. 팀원님들) 어찌되었든 중간 결과가 잘 나와서 아주 만족하고 이제 4일차에는 조금 더 성능을 끌어올려볼 생각이다.

인공지능 2021.08.25

[Dev] Technological cul de sac이란 용어는?

얼마전 쿼라를 구경하던 도중에 cul de sac이란 용어를 접하게 되었다.  사실 처음 봤을때 영어권이 아닌 사람이 댓글을 쓴줄 알았다... 하하...  그런데 이후에 여러 댓글들 중에서도 Technological cul de sac이라는 용어를 언급하는 것을 보고 이게 뭔가 기술과 관련된 용어라는 것을 알게 되었다.  Technological cul de sac은 바로 기술적인 막다른 길이라는 뜻이다. 즉 흔히 말해서 죽은 기술 혹은 전망이 없는 기술을 논할때 자주 사용하는 용어라고 한다. 그래서 댓글들을 보면 기술적 막다른 길에 있는 테크를 택하지 말라는 이야기들을 자주 한다.  아 그리고 참고로 딱 봐도 알겠지만 영어권에서 나온 용어는 아니다. 프랑스어로 Bottom of stack 이라는 뜻이라..

개발 정보 2021.08.25

2021AI엔지니어 고급반 - YOLO with deep learning 교육 프로그램 참가 후기 3일차

YOLO를 활용한 프로그램이 3일차에 접어들었다. 3일차인 오늘은 각 팀별로 데이터셋을 만들어보는 시간을 가졌다. 우리 조는 인종을 구분하기 위해 백인, 흑인, 황인의 데이터를 모았다. (사실 중동, 인도와 같은 사진을 섞게 되면 확실하게 원하는 결과를 얻기 힘들어서 아직은 추가하지 않았다. 나중에 조금 더 성능을 개선할때 좀더 디테일하게 구분하기 위해서 추가할 예정이다. 지금 목표는 성능개선이 아니라 아예 결과가 잘 나오는지 안나오는지 자체를 확인하기 위함이기 때문이다. ) 백인의 경우 British, France, Italy, American등의 연관 키워드들로 사람사진만 뽑아서 저장하였다. 황인의 경우 Asian이라고 치면 연관 검색으로 일본인, 중국인, 한국인의 수많은 검색어가 나와서 손쉽게 찾을..

인공지능 2021.08.25

한중일 출신이 구글에서 더 올라가지 못하는 3가지 이유

구글은 혁신적인 성과를 낸 엔지니어에게는 일반 엔지니어와는 다른 차별적인 대우를 해준다. 칼리코의 경우 인간영생을 위한 프로젝트로 2047년이 되어야 완제품이 나온다. 즉 일반적인 프로젝트와 다른 기준을 적용하게 된다. 또한 조직운영기법을 통해 목표를 공유하여 부서간 카니발을 막는다. 엔지니어의 신이라고 하는 제프딘이라는 분이 있다. 이분은 조직이 없다. 즉 소속없이 혼자 일하는 분인데, 구글에서는 이렇게 일할 수 있는 환경을 제공해준다. 천재적인 엔지니어는 코딩만 잘하는것이 아니라 굉장히 넓은 분야에 대해 관심을 가지고 있다. 구글의 천재 엔지니어는 어렸을 때 식사를 한 후 어머니와 함께 공원을 산책하며 궁금한 것을 물어보고 대화하고 스스로 공부하는 생활 패턴을 이어왔다고 한다. 그 기억이 자신을 이렇..

개발 유튜버 2021.08.25

2021AI엔지니어 고급반 - YOLO with deep learning 교육 프로그램 참가 후기 2일차

교육 프로그램에 참가한지 2일차가 되었다. 1일차에 전반적인 개요와 방법에 대해 설명해보았다면 2일차에는 실제로 어떻게 진행되는지에 대해 알아보았다. 1일차와는 달리 어려움은 없었다. 그리고 실제로 어떻게 인식을 가능하게 하는지에 대해 알 수 있었다. 방법을 요약하면 간단하다. 우선 darknet이 있어야 한다. (깃허브에서 다운받으면 된다. yolo darknet을 치면 알렉세이라는 분의 깃허브가 바로 뜬다. ) 그리고 이미지에서 박스 치기 즉 라벨링을 하기 위한 마킹 툴이 있어야 하는데, Yolo_mark를 사용했다. (이 툴도 알렉세이라는 분의 깃허브에서 다운 받을 수 있다. 실행방법은 해당 디렉토리로 이동한 후에 linux_mark.sh파일을 실행시키면 된다. ) 해당 툴을 사용하여 (리눅스에서 ..

인공지능 2021.08.25

딥러닝은 과연 만능일까? 데싸노트

딥러닝은 과연 만능일까? 우선 결론은 딥러닝은 특화된 분야가 따로 있다. 자연어, 이미지, 비디오 데이터이다. 이런 데이터는 아무래도 변수가 굉장히 많기 때문이다. 딥러닝에 특화된 분야를 딥러닝이 아닌 다른 곳에 적용시키면 엄청난 시간이 걸릴 수 밖에 없다. 컴퓨팅파워가 받쳐주기 때문에 딥러닝이 진행되는거다. 뉴럴 네트워크가 이제 하드웨어의 지원으로 가능해졌기 때문이다. 트리모델에 비해서 딥러닝은 하나 하나의 연산은 사실 단순하다. 하지만 많은 양의 연산이 얽혀있다. CPU를 가지고 하면 굉장히 오래 걸리지만 GPU로 진행하면 빠르게 진행될 수 있다. Tabular데이터는? (엑셀같은 데이터 = 변수가 많지 않다. ) 굳이 딥러닝을 써야하나? 라는 의문 만약 GPU를 사용하지 않는다면 부스팅이 더 좋다...

개발 유튜버 2021.08.24

Christopher Logue의 시

Come to the edge. We might fall. Come to the edge. It's too high! Come to the edge. And they came, and he pushed, and they flew. 그가 말했다. 벼랑 끝으로 오라. 그들이 대답했다. 우린 두렵습니다. 그가 다시 말했다. 벼랑 끝으로 오라. 그들이 왔다. 그는 그들을 밀어버렸다. 그리하여 그들은 날았다. 사람마다 누구나 한계는 존재한다. 하지만 본인의 한계가 어디까지인지 자각하는 순간 그것은 실재하는 한계가 되어 자신의 길을 막아선다. 하지만 어디까지가 한계인지 자각하지 못하고 계속 나아간다면 한계는 계속해서 밀려난다. 자각하면 내 앞으로 다가오는 것이 한계이고 자각하지 않고 끝없이 나아간다면 그만큼 뒤로 ..

생각들 2021.08.24

2021AI엔지니어 고급반 - YOLO with deep learning 교육 프로그램 참가 후기 1일차

서울과학기술대학교에서 진행하는 AI엔지니어 인공지능 고급과정에 참여하게 되었다. YOLO를 이용해서 이미지 인식을 하는 교육과정을 진행하게 되었다. YOLO는 YOU ONLY LOOK ONCE의 약자이다. Object detection에서 많이 사용하는 모델이고 실제로 현업에서도 많이 쓰고 있다고 한다. yolov3~4,5 등등 많은 버전이 나왔지만, 버전이 높아질수록 더 나은 버전인 것이 아니라 그저 장단점이 있을 뿐이다. 처음 yolo를 사용하는 사람은 아래 링크를 따라하면 간단하게 사용해볼 수 있다. https://pjreddie.com/darknet/yolo/ YOLO: Real-Time Object Detection YOLO: Real-Time Object Detection You only lo..

인공지능 2021.08.23

[라인개발실록] 백발 될 때까지 일하는 개발자가 되어보자

software is eating the world 테크회사가 돈을 많이 벌고 있다. 가장 중요한 것은 개발자이다. 다른 산업군과는 다르게 개발자만 있으면 시장도 창출하고 서비스를 만들 수 있는 산업이다. 즉 개발자가 많이 부족하다. 모든 업종에서 sw전문가가 필요하다. 소프트웨어 회사뿐만 아니라 전 산업에서 필요해졌다. 예전엔 혼자서 다 만들던 시절이 있었는데 이제는 그렇지 않다. 서버 개발자, 프론트, 클라우드, ios 등등 각 직군 별로 다양한 전문가가 필요하다. 즉 sw전문화로 더 다양한 직무가 필요해졌다. 개발자 수요는 계속 늘고 있는데, 그렇다면 개발자 공급을 늘리면 되지 않을까? 중간에 포기하는 사람이 많다. 즉 개발을 배우는 것이 쉽지가 않다. 성향이 갈리는 분야라고 생각한다. 또한 기업이..

개발 유튜버 2021.08.22

Smitha Kolan - Machine Learning Engineer

How I Learnt Machine Learning In 6 Steps (3 months) 가장 처음은 수학이다. 라이브러리가 있기에 상관은 없지만 어떻게 해결하는지는 알아야 한다. 수학전체를 끝내야겠다는 생각은 좋지 않다. 꾸준히 계속 수학을 공부하겠다는 생각을 하는게 맞다. 기본적인 머신러닝 알고리즘을 공부해라. 파이썬을 공부해라 머신러닝 라이브러리를 공부해라 -> 사이킷런을 공부해라 그리고 나서 딥러닝으로 이동해서 텐서플로우를 공부해라 이 둘을 아는 것이 중요하다 . 마지막은 계속해서 공부하고 반복하는 것이다. 캐글에 참여하거나 다른 사람들과 소통해라. 지루함을 참고 꾸준히 공부해라 쉬운길이 아니다. 누구나 얻을 수 있는 것이 아니다. 매일 모든 프로젝트를 해야 하는 것은 아니다. 공부를 해라. ..

개발 유튜버 2021.08.21

대한민국 대학원의 적나라한 현실 - 에스오디

돈이 없으면 우리나라에서는 대학원가서 일을 해야 한다. 근데 일을 하면 공부를 하기 어렵다. 대학원에 특별한 연줄이 없는 사람들은 교수한테 연락을 하는 우를 범한다. 이건 마케팅부서에 해당 회사 어떠냐고 물어보는 수준이다. 그 연구실의 석박학생들한테 물어보는게 훨씬 낫다. 좋은점은 딱 하나다. 연구할 수 있는 역량을 기를 수 있다. 기술을 가르쳐주거나 뭘 알려주는 곳이 아니라 스스로 새로운 이론을 만들고 증명하고 논문화할 수 있는 연구할 수 있는 기회를 주기때문에 이게 유일한 자산이다. 대학원의 역할이 뭐냐라고 했을 때 연구자들이 실패를 경험해볼 수 있는 마지막 공간이다. 단점은? 삶의 질이 낮아진다. 수입이 적고 그 나이 때의 사회적 지위보다 낮은 지위에서 살아간다. 주말에도 연구실 박혀서 커피만 마시..

개발 유튜버 2021.08.21

[Dev] GPGPU는 어디서 나온 말일까?

GPGPU는 아래와 같은 의미이다.  "GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산)는 일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 그래픽 처리 장치(GPU)를, 전통적으로 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술이다. 이를 가능하게 한 것은 프로그램 가능한 층과 고정도 연산을 그래픽 파이프라인에 연결하는 것으로, 이를 통하여 소프트웨어 개발자들이 그래픽이 아닌 데이터에 스트림 프로세싱을 사용할 수 있게 된다."출처 : 위키백과 우선 위키백과에는 위와같이 나와있다.  즉 그저 gpu상에서 일반계산이라는 뜻으로 GPGPU라는 이름으로 부르고 있다.  요즘 딥러닝관련해서 간략히 소개해..

개발 정보 2021.08.21

[기술서적] 파이썬 알고리즘 인터뷰 - 박상길

이 책은 처음으로 완독한 알고리즘 관련도서이다. 처음 아무것도 모르는 시절에 알고리즘을 공부할때 doit시리즈 중에 "자료구조와 함께 배우는 알고리즘 입문 - 자바편"을 공부하다가 중간에 때려쳤던 기억이 있다. 꽤 오래전이었던 것 같은데, 최근에 다른 무엇보다 필요성을 절실히 느껴서 알고리즘 공부를 시작하게 되었다. 블로그를 탐방하면서 이곳저곳 돌아다니는 것을 좋아하는데, 몇몇 블로그에서 설명하는 글이 도저히 이해가 안되서 많은걸 느꼈던 것 같다. (이유는 알고리즘에 대한 지식이 부족해서였다.) 사실 어느정도 공부해야겠다는 생각을 하고 있었지만 여태 회피해오지 않았나라는 생각이 들었다. 서론이 길어졌고 미리 책에 대해 요약을 해주면 파이썬을 이용한 알고리즘을 제대로 가르쳐준다는 느낌이 들었다. 파이썬을 ..

[기술서적] 스프링 퀵 스타트 - 채규태

스프링을 처음 공부할 때 썼던 책인데 이제서야 리뷰를 진행한다. 이미 공부한지 1년이 지나서 스프링에 대한 기억이 가물가물하지만 책 자체에 대해서는 리뷰를 진행할 수 있을 것 같다. 설명전에 미리 요약하면 스프링 입문을 원하는 사람들에게 딱 알맞은 책이라고 할 수 있다. 우선 책은 루비페이퍼에서 발간되었다. it분야에서는 최근에 나온 책일수록 버전도 잘 맞고 실습하기에도 편리한 면이 있는데 이 책은 발간된지 시간이 꽤 흘렀음에도 실습하는데 불편함을 느끼지 못했다. (2016년에 출간되었다.) 그 이유를 생각해보았는데, 아마도 스프링의 핵심개념에 대해서만 간단명료하게 소개했기 때문이 아닐까 싶다. 버전에 추가되고 deprecate 되는 기능들이 있을 수도 있는데, 그런 개념들은 나오지 않고, 핵심만 간단하..

[김포프] 가상/증강 현실의 미래

vr은 대중성이 없다. 결과적으로 사람이 원하는건 그냥 편하게 사용하는거다. vr이 기술적으로 발전하긴했고, 분명히 용도가 있긴 하다. 군사훈련 좋다. 체험 좋다. 분명히 좋다. 문제는 그런데 이런 vr은 여태까지 있어왔다. 그런데 그때도 vr은 미래라고 얘기해왔다 지금도 똑같은 패턴이다. 왜 이러냐? 투자자들은 vr이 뭔지 잘 모른다. 근데 돈이 된다는건 안다. 문제는 게임도 이러했다. 게임이 영화산업을 대체한다고 말했다. 하지만 그렇게 못했다. 그래서 게임쪽이 침체됬고, 발전도 느려졌다. vr도 그런 길을 걸을거라고 생각한다. vr은 이미 예전에 있던거 다시 띄울려고 하는 것이다. vr보다는 ar이 미래다. ar은 실제 있는 세상을 조금 고치는 것이기에 ar은 모든 사람에게 유용성이 있다. 실제 bm..

개발 유튜버 2021.08.18

[Python3] Python에서의 False와 None은 같은 것인가?

특정 코드를 보던 중에 파라미터로 넘어온 값을 not 으로 if문에서 판별해주는 구문이 있었다. 해당 전달값이 False라면 if문을 실행하고, True라면 if문을 실행하지 말라는 뜻으로 해석했는데, 그런데 None이 들어오면 어떻게 되는거지? 라는 생각이 들었다. 물론 똑같이 None이 온다면 False일때와 같이 동작하는 것이 당연하다고 생각이 들었지만, 그렇다면 조건에서 False True 를 체크할때만 None은 False로 동작할 수 있는건가? 아니면 실제로 같이 취급되는 것인지에 대해 궁금해졌다. 따라서 간단한 코드 몇줄로 확인해볼 수 있었다. print(None == False) 우선 해당 코드는 False가 나온다. 즉 None은 False가 아니다. 아예 다른 존재다. 그렇다면 어떤 타..

[BOJ] 백준 16173 점프왕 쨀리 - 파이썬

쉬운 문제라고 생각했는데, 마지막에 가서 꽤나 고생을 한 문제이다. 어떻게 해결해야할지 전부 떠올렸고 코드까지 모두 작성했지만 사소한 실수때문에 문제가 풀리지 않았다. # 0338 import sys sys.setrecursionlimit(10**7) N = int(input()) graph = [] for i in range(N): graph.append(list(map(int, input().split()))) visited = [[False] * N for _ in range(N)] def dfs(x, y): if x= N or y= N: return False value = graph[x][y] if value == -1: print("HaruHaru") exit(0) if visited[x][y..

GIL과 Python의 미래, 성능 개선과 버전업, Python의 뒤를 이을 새로운 후보인 Go, Rust와 Julia 이어서 최후의 프로그래밍 언어

(제목에 파이썬의 뒤를 이을 언어라고 해서 파이썬이 사라지고 그 자리를 차지할 언어처럼 들릴 수 있지만 오해를 피하기 위해 정정하자면 파이썬이 근 몇년동안 보여준 성과처럼 급상승세를 거쳐 주류언어에 뛰어들 수 있는 언어라고 제목을 바꾸는 편이 낫겠지만 제목이 너무 길어져서 본문에 적었습니다.) 예전에 파이썬을 공부하면서 global interpreter lock 이라는 개념을 접한 적이 있다. 처음 이 단어를 접했을때는 파이썬만의 고유한 기능인줄 알았다. 그래서 그 당시에는 그냥 그런 개념이 있나보구나하고 넘어갔었다. 그리고 이후에 블로그들을 돌아다니면서 GIL이 자주 언급되는 것을 보고 찾아보았다. 간략히 설명하자면 Global Interpreter Lock의 약어로 파이썬 인터프리터가 한 스레드만 하..

기술 에세이 2021.08.13

[BOJ] 백준 1058 친구 - 파이썬

https://www.acmicpc.net/problem/1058 1058번: 친구 지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람 www.acmicpc.net 백준 1058문제이다. 처음에는 이 문제가 Y의 영역 중에서 가장 큰 영역을 구하라는 것으로 착각하여 dfs로 풀었다가 오답처리되었다. 문제를 깊게 읽어보지 않은 탓이다. 문제를 조금 만 더 깊게 읽어보면 답을 구할 수 있다. 문제를 잘 읽어보면 친구와의 관계에 대해 나온다. 즉 A와 친구이고, B와 친구인 C가 존재해야 한다. 라는 구문이 존재한다. 즉 한다리 건너뛰어서 친구인 사람이 있어야 된다는..

[BOJ] 백준 1012 문제 - 유기농 배추 - 파이썬

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 백준 유기농배추 문제 이다. sys.setrecurtionlimie()을 써주지 않았을때는 에러가 발생했다. RecursionError인데, 재귀말고 반목문으로 작성해봐야겠다. 만약 시간이 없어서 반복문으로 작성하지 못하였을 경우엔 sys.setrecurtionlimie()에 백만정도로 값을 세팅해주면 문제없이 돌아간다. # 0823 ~ 0858 # 백준 1012 import sys from collectio..

[Python3] 파이썬 패키지 설치 완료 후에 import 에러 발생할 경우 + could not be resolved Pylance

파이썬에서 원하는 패키지를 pip install을 통해 정상적으로 설치하였고, 성공적으로 설치하였다는 메시지도 확인했는데도 import 가 되지 않는 경우가 있다. 혹시 잘못됬나 싶어서 패키지를 지워도 보고, 다시 import문을 적어봐도 이런 경우에는 소용이 없다. 보통 pip를 해도 안되는 경우는 크게 pip버전이 안맞아서 pip를 upgrade해줘야 하는 경우, 아예 패키지명이 잘못된 경우 등이 있는데, 이 경우는 성공적으로 설치했음에도 import가 되지 않는 경우를 소개한다. 위 사진처럼 이미 잘 설치되어있음에도 from import 구문이 작동하지 않는 것이다. 바로 아래 처럼 말이다. heapdict라이브러리를 사용하기 위해 from절에 적어주었는데 노란 밑줄이 있는 것을 볼 수 있다. 살펴..

위상 정렬 (Topological Sort)의 사이클 존재 판별

위상 정렬을 공부하는 와중에 이해가 가지 않는 부분이 있는데, 긴가민가해서 정확히 눈으로 확인해보고 싶어 직접 그림으로 풀어보았다. 이해가 가지 않는 부분은 다음과 같다. 모든 원소를 방문하기 전에 큐가 빈다면 사이클이 존재한다고 판단할 수 있습니다. -> 사이클에 포함된 원소 중에서 어떠한 원소도 큐에 들어가지 못합니다. 왜 사이클에 포함된 원소는 어떤 것도 큐에 들어가지 못할까? 라는 생각이 들었는데, 머릿속으로 큐에 집어넣었다가 빼면서 하려니 중간에 실수를 할 수도 있을 것 같아서 바로 그림으로 그려보았다. 다음과 같이 사전에 준비된 그래프가 존재한다. 그리고 보면 알겠지만 (B -> D -> C -> B) 로의 사이클이 존재한다. 그럼 이제 A를 큐에 집어넣고, 간선을 삭제하면 다음과 같이 진행된..

반응형