[BOJ][Python] 2559 수열
·
🚩 Coding Test/Baekjoon
[문제]https://www.acmicpc.net/problem/2559  [코드]슬라이딩 윈도우 기법으로, 이전 값을 빼주고, 다음 값을 더한 값을 lst에 추가한다. lst 에서 최대값을 출력한다. # S3_2559_수열.pyn, k = map(int,input().split())arr = list(map(int,input().split()))lst = []tmp = sum(arr[:k])lst.append(tmp)for i in range(1,n-k+1): tmp += arr[i+k-1] - arr[i-1] lst.append(tmp)print(max(lst))
[Code Tree] Stack, Queue, Deque
·
🚩 Coding Test/Code Tree
1. Stack 스택 정의, 값 넣기/빼기- LIFO; Last In First Out : 후입선출 구조 - stack.push(x) : x 값을 stack 에 push 한다. - stack.size() : stack에 쌓인 블럭의 개수를 반환한다. - stack.empty() : stack 이 비어있으면 true, 비어있지 않다면 false 반환- stack.top() : stack의 맨위에 있는 숫자 값을 반환한다. 단, stack에서 그 블럭을 제거하지는 않는다. - stack.pop() : stack의 맨위에 있는 숫자 값을 반환한다. 단, stack에서 그 블럭을 제거한다.  2. 배열과 스택의 차이- 배열에서 값을 삽입/삭제하는데에는 O(N)의 시간복잡도가 소요된다. - 스택은 맨 뒤에서 값을..
파이썬 기초 문법 1,2,3
·
🇱 Languages/Python
parameter: 함수의 입력 값 인터페이스 - def f(x)argument: 실제 Parameter에 대입된 값- print(f(2))Command Line Interface- Graphic User Interface(GUI)와 달리 Text를 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계print formatting(1) %string>> print("%d %d %d" %(1,2,3))(2) format 함수>> print(" {} {} {}".format("a", "b", "c"))(3) fstring >> print(f"value is {value})padding- 여유 공간을 지정하여 글자배열 + 소수점 자릿수를 맞추기print("Product: %5s, Price per unit: %...
[BOJ][Python] 1159 농구경기
·
🚩 Coding Test/Baekjoon
[문제]https://www.acmicpc.net/problem/1159  [코드]딕셔너리 사용해서 5명 이상인 경우를 찾아주기# B2_1159_농구 경기.pyN = int(input())arr, lst = [], {}for i in range(N): arr.append(input().strip())arr.sort()for i in arr: if i[0] not in lst: lst[i[0]] = 1 else: lst[i[0]] += 1answer = ''for key, value in lst.items(): if value >= 5: answer += keyif len(answer) == 0: print("PREDAJA")else:..
[Programmers][Python] Lv.2 전화번호 목록
·
🚩 Coding Test/Programmers
[문제]https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  [코드]첫 번째 풀이- 문자열 길이 순으로 정렬하여, 길이가 적은 문자열이 길이가 긴 문자열의 접두사인지 확인을 해준다. - 시간복잡도는 이중 반복문이므로 O(N^2)이다. - 결론적으로 테스트케이스 12, 15, 19/ 효율성 테스트 4가 통과하지 못했다. # 접두사인지 확인하는 함수def prefix(arr): for i in range(len(arr)-1): x = l..
[BOJ][Python] 1182 부분수열의 합
·
🚩 Coding Test/Baekjoon
[문제]https://www.acmicpc.net/problem/1182   [코드]첫 번째 풀이- N 만큼 조합을 생성해서 합을 구하고, 그 합이 S와 동일하다면 cnt를 하나씩 올려주었다. (브루트포스) from itertools import combinations as cN, S = map(int, input().split())arr = list(map(int, input().split()))cnt = 0for i in range(1, N + 1): lst = list(c(arr, i)) for j in lst: tmp = sum(j) if tmp == S: cnt += 1print(cnt) 시간복잡도  두번째 풀이- 배열을 반으로 나눈다. 반..
[Code Tree] Sort 정렬
·
🚩 Coding Test/Code Tree
1. Bubble Sort: 거품 정렬 (시간복잡도: O(N^2))- 정렬된 배열에서는 시간복잡도가 O(N)- 각 패스마다 여러 번의 교환이 일어날 수 있다.- 리스트를 반복적으로 순회하면서 인접한 요소를 비교하여 필요 시 교환- 매 패스마다 가장 큰 요소가 뒤로 이동하여 제 위치에 놓인다. n = int(input())arr = list(map(int,input().split()))# 한 패스마다 가장 큰 요소가 끝에 위치하게 되므로, 다음 패스에서는 마지막 요소를 비교할 필요가 없다for i in range(len(arr)-1): # 한 패스마다 가장 큰 요소가 뒤로 이동하므로, 비교할 요소의 범위가 점점 줄어든다. # 따라서, 내부 반복문은 len(arr) - 1 - i 번 반복하여 이미 정렬된 ..
[Programmers][Python] Lv.1 완주하지 못한 선수
·
🚩 Coding Test/Programmers
[문제]https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  [코드]1. 딕셔너리를 사용한 방법def solution(participant, completion): answer, par = '', {} for p in participant: if p in par: par[p] += 1 else: par[p] = 1 for c in completion: if c..
Data Visualization 1 실습
·
💥 Projects/개인실습
실습에 사용한 데이터- https://www.kaggle.com/datasets/nikhil7280/weather-type-classification실습한 시각화 그래프- 막대그래프, 선그래프, 히스토그램, 파이차트, 산점도, 박스플롯 1. 계절별 데이터 개수 세기2. 수치형 열의 상관관계 히트맵3. 계절별 비와 눈 이벤트 횟수 막대 그래프4. 구름 덮개 상태별 평균 강수 확률 막대 그래프1. 데이터 개요- 특정 지역, 기온, 습도, 풍속, 강수 확률, 기압, 자외선 지수, 가시 거리 등 다양한 기상 변수 2. 주요 시각화 결과 및 분석2-1. 겨울 데이터 개수가 많음2-2. 수치형 열의 상관관계 히트맵- 기온(Temperature)과 습도(Humidity): 강한 음의 상관관계가 나타남. 이는 기온이 ..
텍스트 데이터를 클리닝하고 정규화
·
💥 Projects/개인실습
[텍스트 데이터 전처리 과정]* 텍스트 데이터 전처리 과정1. 데이터 정제(Cleaning)- 불필요한 문자 제거: HMTL, 태그, 특수 문자, 이모지 등 제거- 불용어 제거: 분석에 도움되지 않는 일반적인 단어들 제거 (the, is)- 철자 오류 교정2. 데이터 정규화(Normalization)- 토큰화(Tokenization): 텍스트를 문장 또는 단어 단위로 분할- 어간 추출(Stemming): 단어의 접미사나 어미를 제거하여 어간을 추출- 원형 복원(Lemmatization): 단어의 문법적 의미와 문맥을 고려하여 사전적 원형 찾아 변환3. 정형화(Structuring)- 백터화(Vectorization): 텍스트 데이터를 수치 데이터로 변환- Bag-of-Words(BoW): 각 단어의 발생..