본문 바로가기 메뉴 바로가기

풀고풀고

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

풀고풀고

검색하기 폼
  • 분류 전체보기 (37)
    • 수학 (2)
      • 선형대수학 (2)
      • 미적분 (0)
      • 확률과통계 (0)
    • 코딩테스트 (27)
      • 프로그래머스 (25)
      • LeetCode (2)
    • 인공지능 (5)
      • Stable Diffusion (3)
      • ChatGPT (1)
    • Python (0)
      • Computer Vision (0)
    • 체스 (1)
    • 넋두리 (1)
  • 방명록

코딩테스트/프로그래머스 (25)
[프로그래머스, 파이썬] 베스트앨범 (문제 해설, 코드 포함)

💡 문제 해결 아이디어 리스트의 정렬을 간단하게만 이해하면 된다! 리스트는 기본적으로 오름차순(작은 숫자부터 차례대로)으로 정렬된다. 리스트 안에 리스트들이 있다면, 첫번째 요소를 기준으로 먼저 정렬한다. 첫번째 요소의 값이 같으면 두번째 요소를 기준으로 정렬한다. > 문제 조건 3번 두번째 요소의 값이 같으면 세번째 요소..... 이후 동일하다! 코드의 간결함을 위해 lambda와 list comprehension(이름만 어려움)을 사용한다! 코드와 주석을 보면 이해가 쉬울 것이다! 💻 작성된 코드(기본ver.) def solution(genres, plays): # 각 장르별로 노래 재생수와 인덱스를 담기 위한 dict music_dict = {} # for문을 돌면서 for i in range(le..

코딩테스트/프로그래머스 2023. 1. 1. 22:20
[프로그래머스, 파이썬] 위장 (해시)

💡 문제 해결 아이디어 우리는 하나의 카테고리에서 (변장도구 개수 + 1)의 선택지를 가지고 있다: +1 은 착용하지 않는 경우. 그렇다면, (얼굴 변장도구 개수 + 1) * (상의 변장도구 개수 + 1) * (하의 변장도구 개수 + 1) ..... 이런 식으로 모든 경우의 수를 계산할 수 있다. 다만, 모든 카테고리에서 착용하지 않는 경우는 제외해야하니 곱셈 결과에서 -1을 해줘야한다. 각 카테고리의 변장도구 개수 세기는, 파이썬 내장 함수인 Counter를 활용하도록 한다! 💻 작성된 코드(기본ver.) # 파이썬 내장 함수 Counter 불러오기 from collections import Counter def solution(clothes): # 카테고리를 담을 리스트 category_list = ..

코딩테스트/프로그래머스 2023. 1. 1. 21:26
[프로그래머스, 파이썬] 전화번호 목록 (해시)

💡 문제 해결 아이디어 파이썬에서, 문자열이 정렬되는 방식을 이용하면 된다! 아래의 예시를 보면 약간 감이 올 것이다. 한 번호가 다른 번호의 접두어일 경우에는, 정렬 시 바로 앞에 위치하게 될 것이다. 접두어 케이스가 하나라도 있으면 되기에, 간단하게 코드를 짤 수 있었다. 💻 작성된 코드 def solution(phone_book): # 주어진 전화번호부를 정렬 phone_book.sort() # 처음부터 (끝-1)까지 for i in range(len(phone_book)-1): # 한 번호를 다음 번호에서 찾았을 때, # 맨 앞이라면 접두어. if phone_book[i+1].find(phone_book[i]) == 0: return False # 못찾고 for문이 끝난 경우. return True

코딩테스트/프로그래머스 2023. 1. 1. 20:57
[프로그래머스, 파이썬] 완주하지 못한 선수 (해시)

💡 문제 해결 아이디어 완주한 선수들의 이름을, 참가자들의 이름에서 하나씩 지워도 될 것 같다. 하지만, 동명이인이 있을 경우에 머리가 아파진다🥲 간단하게, 각 이름마다 사람이 몇명 있는지 세보자! 파이썬 기본 내장 함수인 Counter를 이용해서! 💻 작성된 코드 # Python 내장 함수인 Counter 활용 from collections import Counter def solution(participant, completion): # Counter를 이용하여 이름당 사람수를 센다. part, comp = Counter(participant), Counter(completion) # 모든 참가자들의 이름과 사람수에 대해서 for name, cnt in part.items(): # 만약 해당 이름이 ..

코딩테스트/프로그래머스 2023. 1. 1. 11:19
[프로그래머스, 파이썬] 디펜스 게임 (연습문제, 큐)

💡 문제 해결 아이디어 적어도 무적권 개수, k개만큼의 라운드는 막을 수 있다: 그러니 k+1번째 라운드부터 시작. 라운드가 진행될 때마다, (기존에 무적권을 썼던 k개 라운드 + 새로운 라운드) 중에서 가장 적은 enemy의 라운드의 무적권 사용을 포기한다. 가장 적은 enemy의 수를 알아내기 위해, 라운드가 진행될때마다 "정렬"하는 것은 비효율적이다. 정렬 대신 최소or최대 값을 뽑아내는데에 최적화된 "heap"이라는 자료구조를 사용하자! 이때, "(무적권 사용을 포기한 라운드의 enemy) > (남아 있는 병사)" 라면 게임종료! 아니라면, enemy만큼 남아 있는 병사를 차감하고, 다음 라운드를 진행한다! 💻 작성된 코드 # heapq 라이브러리 활용 import heapq def solutio..

코딩테스트/프로그래머스 2023. 1. 1. 11:06
[프로그래머스, 파이썬] 조이스틱, 그리디

💡 문제 해결 아이디어 벨로그에 있던 제 글을 이전한 것입니다! 🛠 피드백 Greedy보다는 Brute Force에 가까운 듯한 문제. 다른 사람의 코드를 참조한 정답. 기본 최소 이동 횟수는 길이-1. 연속되는 A가 있을 때, 그것의 왼쪽이나 오른쪽부터 시작하며 알파벳을 변경하는 것이 가장 효율적이다. 때문에 (기존, 연속된 A의 왼쪽부터 시작, 연속된 A의 오른쪽부터 시작) 중에서 제일 작은 값이 답이다! 내가 생각한 아이디어 연속되는 A의 최대 길이가 핵심포인트. 연속되는 A가 있는 곳에는 굳이 갈 필요가 없으므로, 그 부분을 제외하고 수정하는 경우를 계산한다. 다만, 연속되는 A가 여러군데인 경우 가장 긴 부분을안가는게 더 효율적일 것이다. ex) JAAJAAAAJ 인 경우 4번째 J를 처리하기 ..

코딩테스트/프로그래머스 2022. 12. 31. 21:12
[프로그래머스 기능개발] (파이썬)

💡 문제 해결 아이디어 1. 배포가 완료될 때까지 - for문이 아닌 while문의 사용. 2. 리스트의 맨 앞의 요소 제거 - pop(0)의 활용. + 추가 잡기술 - zip: 길이가 같은 리스트를 묶어서 각 리스트의 요소를 동시에 반복하게 할 수 있다. - while 리스트: 조건문에 리스트를 넣으면, 리스트가 비어있으면 False, 리스트가 차있으면 True로 처리된다. 💻 작성된 코드 def solution(progresses, speeds): answer = [] # 모든 배포가 완료될 때까지 while progresses: # 맨 앞의 작업의 진도가 100이 될때까지 while progresses[0] < 100: progresses = [p+s for p, s in zip(progresses..

코딩테스트/프로그래머스 2022. 12. 31. 21:07
[프로그래머스, 파이썬] 마법의 엘리베이터, 그리디

💡 문제 해결 아이디어 1. 현재 자리수 단위로 이동 (ex. 두자리의 경우 10) vs 하나 더 큰 단위로 이동 (ex. 두자리의 경우 100) - 4층이면, -10으로 이동하는 것보단 그냥 -1로 4번 이동하는게 낫다. - 9층이면, -10으로 이동하고 +1로 이동하는게 -1로 9번보다 낫다. 2. 양수나 음수나 똑같다. - 4층이나 -4층이나 1단위로 4번 이동해야하는 건 똑같다. 모든 수에서 양수나 음수나 똑같다. 💻 작성된 코드 def solution(storey): answer = 0 # 도착할때까지, while storey > 0: # 현재 숫자 자리수 num_digits = len(str(storey)) # 하나 더 큰 단위로 이동 & 현재 자리수 단위로 이동 # 양수나 음수나 똑같다. c..

코딩테스트/프로그래머스 2022. 12. 31. 20:51
이전 1 2 3 4 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • Attend and Excite
  • 프로그래머스 아이템줍기
  • stablediffusion
  • Low Manifold Theory
  • heap
  • OpenAI
  • ChatGPT
  • 프로그래머스 가장 가까운 글자
  • leetcode
  • 알고리즘
  • 파이썬
  • 프로그래머스
  • 프로그래머스 파이썬
  • 프로그래머스 연속된수의합
  • Stable Diffusion
  • 문자열 나누기 파이썬
  • heapq
  • 그리디
  • 가장 가까운 글자 파이썬
  • 코딩테스트
  • 인공지능
  • 연습문제
  • 큐
  • 스테이블디퓨전
  • 디펜스
  • 프로그래머스 문자열 나누기
  • 프로그래머스 햄버거 만들기
  • python
  • BFS
  • 코테
more
«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바