[ 스택 / 큐 ] Programmers / 같은 숫자는 싫어 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 같은 숫자는 싫어 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이def solution(arr): stack = [] for i in arr: if len(stack) == 0: stack.append(i) elif stack[-1] != i: stack.append(i) return stack
이진 탐색 알고리즘
·
자료구조 | 알고리즘
순차 탐색 - 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 - 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용 - 리스트 자료형에서 count() 메서드를 이용할 때도 내부에서 순차 탐색이 수행됨 이진 탐색 : 반으로 쪼개면서 탐색하기 - 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘 - 데이터가 이미 정렬되어 있다면 매우 빠르게 데이터를 찾을 수 있음 - 탐색 범위를 절반씩 좁혀가며 데이터를 탐색함 - 이진 탐색은 탐색하고자 하는 범위의 시작점, 끝점, 중간점으로 위치를 나타내는 변수 3개를 사용함 - 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾음 이진 탐색 예시 이미 정렬된 10개의..
Programmers / 2단계 / 멀리 뛰기 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 멀리 뛰기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(n): a, b = 0,1 for i in range(n) : a,b = b, a+b return b % 1234567 규칙성을 찾으면 단순히 피보나치 수열을 이용하여 풀 수 있는 문제였다.
Programmers / 2단계 / 구명보트 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/42885 나의 풀이 (22.2점 실패) def solution(people, limit): people.sort() wsum=people[0]#50 count=1 for i in range(1, len(people)): #50 70 80 if wsum+people[i]==limit: count+=1 wsum=0 elif wsum+people[i]>limit: count+=1 wsum=people[i] else: wsum+=people[i] return count 모범 답안 def solution(people, limit) : count = 0 people.sort() a = 0 b = len(peop..
정렬 알고리즘 (선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬)
·
자료구조 | 알고리즘
정렬 - 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 - 정렬 알고리즘으로 데이터를 정렬하면 이진 탐색이 가능 / 정렬 알고리즘은 이진 탐색의 전처리 과정 정렬 알고리즘의 종류 선택 정렬 삽입 정렬 퀵 정렬 선택 정렬 - 데이터가 무작위로 여러 개 있을 때, 이중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복한다. 10개의 데이터 예시에 선택 정렬 알고리즘 적용 1. 초기 단계에서 모든 데이터가 정렬되어 있지 않으므로, 전체 중에서 가장 작은 데이터를 선택한다. 따라서 '0'을 선택해 맨 앞에 있는 데이터 '7'과 바꾼다. 2. 정렬된 데이터를 제외한 데이터 중에서 가장 작은 데이터를 처리되지 않은 데이터 ..
Programmers / 2단계 / 영어 끝말잇기 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/12981 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음..
[데이터 분석] 우리 동네 인구 구조 시각화하기
·
데이터 분석
우리 동네의 인구 구조 시각화 알고리즘 1 | 인구 데이터 파일을 읽어온다. 2 | 전체 데이터에서 한 줄씩 반복해서 읽어온다. 3 | 우리 동네에 대한 데이터인지 확인한다. 4 | 우리 동네일 경우 0세부터 100세 이상까지의 인구수를 순서대로 저장한다. 5 | 저장된 연령별 인구수 데이터를 시각화한다. 전체 데이터에서 우리 동네 데이터만 출력하기 0번째 열인 row[0]에 지역명이 저장되어 있으므로 import csv f = open('age.csv') data = csv.reader(f) for row in data : if '경상남도 진주시 천전동(4817051500)' == row[0]: print(row) ['경상남도 진주시 천전동(4817051500)', '27,517', '27,517', ..
[데이터 분석] A열의 한글이 깨져 보일 때 해결 방법
·
데이터 분석
엑셀 파일의 A열의 한글이 깨져 보인다면 파일 인코딩 방식을 바꿔야 한다. 1. 파일을 메모장으로 연다. 2. 메뉴에서 파일 → 다른 이름으로 저장을 선택 후 파일의 '인코딩'을 UTF-8로 바꾼 다음, '파일 형식'을 모든 파일로 설정한 뒤 저장한다.