Python 10

[코테 - py] 베스트 앨범

https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이번 문제는 해시 문제였다.딕셔너리를 이용하여 원하는 정보를 담고, lambda를 이용해서 정렬해주면서 풀었다.def solution(genres, plays): # 답을 넣을 리스트 answer = [] # 각 장르별 [인덱스, 재생 수] dic = {} # 각 장르별 합친 재생 수 count = {} # 딕셔너리 채우기 for i in range(len(p..

[코테 - py] 문자열 압축

https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제는 문자열 문제로 어렵지는 않았지만, 내가 복잡하게 푼 것같다.코드를 간결하고 시간복잡도가 낮게 푸는 방법을 키우는 연습을 해야할 것같다. def solution(s): answer = 0 temp = 1 result = 1e9 for i in range(1, len(s)+1): data = [] for j in range(0, len(s)..

[코테 - py] 숫자 문자열과 영단어

https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이번 문제는 2021 카카오 채용연계형 인터십 코테 문제였다.문자열을 다루는 문제인데 replace를 이용해서 쉽게 풀수 있었다. dic의 크기가 10이고, s의 길이가 최대 50이기 때문에 replace 사용이 가능했다!def solution(s): dic = {} dic["zero"] = 0 dic["one"] = 1 dic["two"] = 2 dic["three"..

[코테 - py] 숫자 카드 나누기

import mathg = math.gcd(10, 20) # 10https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제는 결국 해설을 보았다. 시간초과문제를 해결하지 못해서 풀이를 확인했다.최대공약수를 이용해서 푸는 문제!gcd를 import해서 사용한다. from math import gcddef get_gcd(arr): g = arr[0] # 배열을 돌면서 gcd를 구함 for i in range(1,len(arr)): ..

[코테 - py] 프로그래머스 JadenCase 문자열 만들기

1. 문제 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상 200 이하인 문자열입니다. s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다. 숫자는 단어의 첫 문자로만 나옵니다. 숫자로만 이루어진 단어는 없습니다. 공백문자가 연속해서 나올 수 있습니다. 2. 내가 푼 답def solution(s): answer = '' temp = list(map(str, s.split(' '))) r..

[알고리즘, 자료구조] Hash Table (해쉬 테이블) - dictionary

1. Hash Table - 효율적인 탐색을 위한 알고리즘 key - value 저장, 삭제, 검색의 시간 복잡도 O(1) Hash Table -> hash function h를 활용 (key, value) "h(k)는 키 k의 해시값이다" key는 무조건 존재, 중복되는 key값이 있어서는 안됨 Hash Table access O(1) insert O(1) append delete O(1) - 파이썬 dictionary = Hash Table 파이썬에서는 key를 리스트의 index로 생각하자! # dictionary -> 해쉬테이블 ST_Info = {} ST_Info[1] = "가" ST_Info[2] = "나" ST_Info[3] = "다" ST_Info[4] = "라" # in 연산자 if 2 ..

[알고리즘, 자료구조] Queue , Stack

1. Queue - 선입선출 (FIFO) - 먼저 저장한 데이터가 먼저 출력 -> enqueue : rear에 데이터가 추가 -> dequeue : front에서 데이터를 꺼냄 1) List 기반 Queue 구현 enqueue - O(1) dequeue - O(n) 2) LinkedList 기반 Queue 구현 enqueue - O(1) dequeue - O(1) # list 기반 queue q = [] # enqueue O(1) q.append(1) q.append(2) q.append(3) # dequeue O(n) q.pop(0) q.pop(0) #linked List 기반 queue from collections import deque # queue 선언 q = deque() # enqueue O..

[알고리즘, 자료구조] List, LinkedList 의 이해

1 .List python -> dynamic array : 연속적 시간 복잡도 Dynamic array access / update O(1) insert_back amortized O(1) delete_back O(1) insert_at O(n) delete_at O(n) 2. LinkedList, Doubly LinkedList LinkedList : Node라는 구조체가 연결되는 형식으로 데이터를 저장하는 자료구조, 비연속적 -> Node는 데이터 값(value), 주소값(next)로 구성 시간 복잡도 Linked List access / update O(n) insert_front O(1) insert_at O(n) insert_back O(n) | O(1) remove_front O(1) rem..

[YOLOv5] - Wandb(Weight & Biases), 사용법

Yolov5 커스텀 학습 중 Wandb라는 것을 알게 되었다. 이번 공부는 Wandb가 무엇인지 그리고 설치방법은 무엇인지에 대해서 알아보자! Wandb란? Weight & Biases(wandb)은 머신러닝 모델 학습 및 실험 관리를 위한 온라인 플랫폼이다. 이 도구를 사용하면 머신러닝 모델 학습 과정에서 발생하는 다양한 정보들(학습곡선, 하이퍼파리미터, 코드 및 데이터셋 등)을 시각화하고 추적할 수 있다. Wandb는 Python 라이브러리로 제공되고 지원하는 머신러닝 프레임워크에 대한 API를 제공한다고한다. 또한 이 Tool을 사용하여 다른 사용자와 공유하거나, 협업하여 프로젝트를 관리할 수 있다. Wandb는 다양한 머신러닝 프레임워크와 통합이 가능하고 다양한 클라우드 서비스와 연동이 가능하다...

🙋‍♀️ AI 2023.04.24

[코테 - py] 백준 2525번 - 오븐 시계

KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다.또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째..