분류 전체보기
[이코테] 5. DFS & BFS
DFS/BFS DFS/BFS = 대표적인 그래프 탐색 알고리즘. 코딩테스트에 꼭 나오는 유형. 탐색 = 많은 양의 데이터 속에서 원하는 데이터를 찾는 과정 DFS/BFS를 알기위한 사전 개념으로 스택과 큐에 대해서 알아야함. 스택과 큐 자료구조 스택과 큐를 설명하라고 한다면, 이것 부터 떠올려라! 스택 : 막힌 통(프링글스 통) / 선입후출 큐 : 뚫린 통(터널) / 선입선출 Python에서 스택 자료구조를 이용하려면, list 를 사용하면 된다. stack = [] # 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.po..
[이코테] 4. 구현 - 문자열 재정렬
문자열 재정렬 : 문제 설명 알고리즘 문제를 접할 때, 수와 숫자의 차이를 이해해야한다. 수는, 세 자리수, 네 자리수(100, 1000) 등 정수와 같은 데이터를 의미함. 숫자는 1, 0, 0 / 1, 0, 0, 0 등 하나하나의 개수를 의미한다고 생각하면 구분하기 쉬움 문제 해결 아이디어 정답 data = input() result = [] value = 0 # 문자를 하나씩 확인하며 for x in data: # 알파벳인 경우 결과 리스트에 삽입 if x.isalpha(): result.append(x) # 숫자는 따로 더하기 else: value += int(x) # 알파벳을 오름차순으로 정렬 result.sort() # 숫자가 하나라도 존재하는 경우 가장 뒤에 삽입 if value != 0: r..
[이코테] 4. 구현 - 왕실의 나이트
왕실의 나이트 : 문제 설명 이 문제는 시뮬레이션, 완전탐색, 구현 문제라고 할 수 있다. 문제 해결 아이디어 요구사항대로 충실히 구현하면 됨. 나이트의 8가지 경로를 하나씩 확인하며 각 위치로 이동이 가능한지 확인해야함. 리스트를 이용하여 8가지 방향에 대한 방향 벡터를 정의! 정답 # 현재 나이트의 위치 입력받기 input_data = input() row = int(input_data[1]) column = int(ord(input_data[0])) - int(ord('a')) + 1 # 나이트가 이동할 수 있는 8가지 방향 정의 steps = [(-2, -1), (-1, -2), (1, -2), (2, -1), (2, 1), (1, 2), (-1, 2), (-2, 1)] # 8가지 방향에 대하여 ..
[이코테] 4. 구현 - 시각(완전탐색 유형)
시각: 문제 설명 문제 해결 아이디어 우리는 완전탐색, 시뮬레이션 등의 유형 또한 구현 유형이라고 칭하기로했다. 정답 h - int(input()) count = 0 for i in range(h + 1): for j in range(60): for k in range(60): if '3' in str(i) + str(j) + str(k): count += 1 print(count) '''output 5 11475 ''' 이코테 2021 시리즈 씹어먹기 by 조랭이떡 시리즈 목차 더보기 코딩테스트 출제 경향 및 알고리즘 성능 평가 파이썬 문법 부수기 수, 리스트 자료형 문자열, 튜플, 사전, 집합 자료형 기본 입출력 조건문 반복문 함수와 람다 표현식 자주 사용되는 표준 라이브러리 그리디 그리디 알고리즘이..
[이코테] 4. 구현(Implementation) 유형 설명 및 예제 문제(상하좌우)
구현(Implementation)이란? 흔히 알고리즘에서의 구현 유형의 문제란 무엇을 의미할까요? 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 지칭 구현 유형의 예시 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제 이 부분은 프로그래밍 언어를 어떤 것을 사용하느냐에 따라 달라짐. 실수 연산을 다루고, 특정 소수점 자리까지 출력해야하는 문제 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제 적절한 라이브러리를 찾아서 사용해야 하는 문제 모든 순열과 조합을 찾는 문제를 파이썬에서는 itertools 라이브러리를 이용해서 매우 간결히 작성 가능. 일반적으로 알고리즘 문제에서 2차원 공간은 행렬(Matrix)의 의미로 사용됨. 여기서 유의할 점은 행과 열의 축방향, (0, 0)의 위치..
[git] PyCharm git clone failed invalid path 에러 가이드
PyCharm은 Git을 장려하는 아주 착한 IDE다.. 그래서 집 데스크탑에서 파이참으로 맛보려고 첫 세팅하던 도중 아래 사진과 같은 에러가 났다. (하지말고 쉬라는 신의 계시..?) 이런 invalid path 에러는 종종 발생한다는데, 이는 clone 하는 파일 이름에 특수문자가 들어가서 윈도우 파일 시스템에서 인식하지 못하는 경우에 발생하는 에러라고 한다. (파일명을 자세히 보면 -, >, [, ], + 등등 다양하게도 써놨다 ㅎ..) 이 경우는 아래 처럼 하면 바로 해결 된다. git config 변경하기 윈도우 탐색기를 열고 git clone을 한 해당 로컬 파일로 이동한 뒤에 마우스 오른쪽 버튼에서 git bash here을 클릭한다. 그 후 git bash 창이 열리는데 아래 처럼 입력하면..
[딥러닝] mAP(mean Average Precision)이란?
엊그제 주간업무회의 도중에 A가 B에게 말했습니다. "이건 mAP가 아니라 IoU 아닌가요? 제대로 적은거 맞나요?!" 저는 뭔지 몰라서 조용히 있었습니다... (변명하자면,, 제 파트가 아니였어요ㅠ_ㅠ) 이제는.. IoU, mAP관련 이야기가 나오면 "그 수치는 mAP가 아니라 IoU죠!" 라고 말하는 멋쟁이가 되기 위해 공부했습니다. 여러분에게 쉽게 설명드릴테니 우리 같이 멋쟁이가 되어 봅시다!! : ) 우선, mAP에 대해서 이해하기 전에, 우리는 총 3가지 개념을 먼저 알아야 이해가 수월합니다. IoU + Confusion Matrix(TP, FN, FP, TN) Precision Recall IoU 포스팅을 통해서 IoU + Confusion Matrix(TP, FN, FP, TN)에 대해 이해..
[딥러닝] IoU(Intersection over Union)란?
엊그제 주간업무회의 도중에 A가 B에게 말했습니다. "이건 mAP가 아니라 IoU 아닌가요? 제대로 적은거 맞나요?!" 저는 뭔지 몰라서 조용히 있었습니다... (변명하자면,, 제 파트가 아니였어요ㅠ_ㅠ) 이제는.. IoU, mAP관련 이야기가 나오면 "그 수치는 mAP가 아니라 IoU죠!" 라고 말하는 멋쟁이가 되기 위해 공부했습니다. 여러분에게 쉽게 설명드릴테니 우리 같이 멋쟁이가 되어 봅시다!! : ) 목차 : Why IoU? 왜, IoU를 사용하는지? What IoU? 그래서, IoU가 뭔데? Where IoU? 알겠어, 어디에 쓰는데? 1. Why IoU? IoU의 개념과 정의를 알아보기 전에, 우선, IoU를 왜?! 사용하는지 짚고 넘어가볼께요. IoU는 쉽게 말해서 "도구"예요. 우리가 객체..
딥러닝 엔지니어 후기 / 회고 / 깨달음(feat. 드로우앤드류)
본인은 자동차 부품회사 딥러닝 엔지니어로 근무하고있다. 3개월 간 근무하면서 깨달은 점을 몇가지 끄적이고자 한다. (샛병아리가 무슨 깨달음을?) 초짜 병아리가 하이테크 기술을 읊는 전문적인 관점이 아니다. (사실 못한다) 거시적인 관점에서 깨달은 점을 포스팅하고자 한다. 몇몇 나뭇가지들은 정리되고 새로 자라날 수 도 있겠지만, 지금 깨달은 나무의 뼈대만큼은 새로 자라나지도, 정리 되지도 않을 것이라 생각된다. 아래에 본인이 기억하고자 하는 바가 서술 되어있으니 처음부터 자근차근 읽어주신다면 이해하기 쉬울 것이다. 제품이 완성 되기 까지 과정. 제조업에서는 제품이 완성 되기 까지의 과정이 두 가지로 나뉘어진다. 선행과 양산 먼저 선행, 목적에 맞게 딥러닝 모델을 만든다. 경량화 및 인식률 높이기 모델의 O..
[Error] AttributeError: module 'torch.nn' has no attribute 'Conv2D' 해결 방법
멍청한 실수를 했지만.. 반복하지 않기 위해 기록하고자 한다. AttributeError: module 'torch.nn' has no attribute 'Conv2D' 속성에러 : torch.nn이라는 모듈에는 Conv2D라는 속성이 없다. 이상하다.. 분명히 고쳤는데 왜 안될까...라고 생각하고 디버깅을 했다. (pointwise가 틀렸다고 나와있는데도 못 알아차렸다..) class Depthwise(nn.Module): def __init__(self, in_channels, out_channels, stride=1): super().__init__() self.depthwise = nn.Sequential( nn.Conv2d(in_channels, in_channels, 3, stride=stri..