그들과의 첫 조우 - 백준 1260번 이번 문제, 푸는데 20시간은 걸린거 같다. 그만큼 몰랐던 개념이 많았던 문제고 그에따라 많은 개념을 익혔다. 일단 문제를 풀며 가장 난이도를 느낀 부분이 그래프의 구현이었다. 나는 애초에 그래프가 뭔지도 몰랐다. 그리고 스택과 큐 역시 전공수업을 들으며 대충은 개념을 알고 있었지만, 실제로 써본 것은 처음이었다. 1. 그래프 그래프란 정점과 간선으로 이뤄진 자료구조다. 정확하게는 정점사이의 관계를 나타낸 자료다. 자 이걸 어떻게 프로그램한테 설명할 것인가? 크게 두가지 방법으로 표현 할 수 있다. 1) 인접 행렬 정점의 수에 따라 n*n의 2차원 리스트를 생성한뒤, 그 내용을 0으로 채워넣는다. 그 후에 1,2라는 정점사이에 간선이 존재한다면 arr[1][2]=1,..
CS/백준 풀이
실버 2 찍었다. 근데 풀다보니까 더 이상 무지성 때려박기로는 안된다는 생각이 들어서 알고리즘을 공부하기로 했다. 1. 선택정렬 현재 위치에 들어갈 값을 찾아 정렬하는 배열이다. 인덱스 값을 증가 시키며 인덱스 이후의 최소값과 값을 바꿔주는 방식이며, 반복문을 두번 사용하기 때문에 시간복잡도는 N(O^2)이다. 파이썬 코드(오름차순) arr=[2,5,3,1,8,7,6,9,4] for j in range(0,len(arr)): low=arr[j] for i in range(j,len(arr)): if low>=arr[i]: low=arr[i] index=i arr[index],arr[j]=arr[j],low print(arr) 자바스크립트 코드(오름차순) 2. 삽입 정렬 현재위치에서 이하의 배열을 비교, ..
지금까지 적은게 영 부실한거 같아서 다시 한번 정리해서 적으려고 한다. 무지성 노베이스 파이썬으로 6월 25일부터 시작했다. 오늘부로 9일차 아래는 문제로 쳐맞아가며 배운 소중한 내용들이다. 배운 점 1. map(적용시킬 함수, 적용할 요소들) 2. split() -> 공백을 기준으로 나눠주는 함수 응용 : 임의의 숫자 두개(공백기준으로 나눔) 입력 a,b=map(int, input().split() 3. 연산자들(** : 거듭제곱, /: 실수형 나누기 //: 정수형 나누기) 4. 파이썬에서 특수한 문자(",',\)를 입력할땐 \를 앞에 붙여야 한다. 5. int(입력, 진수) -> 몰라서 리스트로 받아서 공식써서 변환시키려고 했음 6. d=list() -> 빈 리스트 생성 7. print(내용, end..