일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- easy 딥러닝
- python 2309
- Python
- 큐
- til
- 파이썬
- 개발자 취업
- 백준
- 99클럽
- 백준 2309
- 항해99
- 99항해
- leetcode
- 개발자취업
- 혁펜하임
- 알고리즘
- BFS
- 딥러닝
- boj 2309
- dfs
- 코딩테스트 준비
- 해시
- 기능개발
- 프로그래머스
- BOJ
- 활성화 함수
- softeer
- 구현
- 코딩테스트준비
- 스택
- Today
- Total
목록Python (38)
동까의 코딩
파이썬 [프로그래머스] - 가장 큰 수문제 설명프로그래머스의 가장 큰 수 문제는 주어진 숫자 배열을 이어 붙여 만들 수 있는 가장 큰 수를 반환하는 문제입니다.예를 들어, [6, 10, 2]가 주어지면 숫자들을 적절히 이어 붙여 6210을 만드는 것이 목표입니다.문제 접근 방식문자열 변환 주어진 숫자들을 문자열로 변환합니다.정렬 기준 설정 각 숫자 문자열을 반복하여 비교 기준을 만듭니다.예를 들어, 숫자 3은 "333"으로, 숫자 30은 "303030"으로 변환하여 비교합니다.문자열은 첫 인덱스가 같으면 다음 인덱스로 넘어가서 대소비교를 하기 때문에 숫자 '30'이 뒤로 밀립니다.내림차순 정렬 변환된 문자열들을 내림차순으로 정렬하여, 이어 붙였을 때 가장 큰 수가 나오도록 합니다.결과 조합 및 반환..
파이썬 [프로그래머스] - 기능개발문제 설명프로그래머스의 기능개발 문제는 각 작업의 진행 상황(progresses)과 작업 속도(speeds)가 주어졌을 때,작업이 100% 이상 완료되면 배포하는 방식으로, 배포마다 동시에 몇 개의 작업이 완료되는지를 구하는 문제입니다.문제 조건각 작업은 매일 일정한 속도로 진행됩니다.작업은 순서대로 배포되며, 앞 작업이 완료되어야 뒷 작업도 함께 배포될 수 있습니다.한 번의 배포에 여러 작업이 동시에 완료될 수 있습니다.문제 접근 방식시간 시뮬레이션 time 변수를 사용해 경과한 날짜를 추적합니다.완료 조건 체크 각 작업의 진행도는 progress + time * speed로 계산합니다.첫 번째 작업이 100% 이상이면 작업을 제거(pop)하고 배포할 작업의 수(c..
위장 문제 풀이: 해시맵을 활용한 조합 계산프로그래머스의 의상 문제는 주어진 옷들의 조합을 통해 가능한 경우의 수를 계산하는 문제입니다.각 옷 종류별로 선택할 수 있는 경우의 수는 해당 종류의 옷 개수에 1을 더한 값이며, 모든 경우의 수를 곱한 후, 아무것도 선택하지 않는 경우를 제외한 값을 반환합니다.풀이 과정딕셔너리 생성:입력으로 주어진 clothes 리스트를 순회하며, 옷의 종류를 key로 하고, 해당 종류에 속하는 옷의 이름을 리스트에 저장합니다.조합 계산:각 옷 종류별로 선택할 수 있는 경우의 수는 len(옷 리스트) + 1입니다.이를 모든 옷 종류에 대해 곱한 값을 구합니다.결과 도출:최종적으로 모든 경우의 수에서 아무것도 선택하지 않는 경우(1)를 빼서 결과를 반환합니다.코드 구현def s..
해시를 이용한 전화번호 목록 문제 풀이프로그래머스의 전화번호 목록 문제는 주어진 전화번호 리스트 내에서 한 번호가 다른 번호의 접두사인 경우가 있는지 판별하는 문제입니다. 이번 포스트에서는 해시 테이블을 이용한 풀이 방법을 소개합니다.문제 개요문제 설명:전화번호 목록이 주어질 때, 한 번호가 다른 번호의 접두사(prefix)가 되는 경우가 있으면 False, 그렇지 않으면 True를 반환합니다.접근 방식:모든 전화번호를 해시 테이블에 저장한 후, 각 번호의 모든 접두사를 하나씩 확인하여 해시 테이블에 존재하는지 검사합니다. 단, 자기 자신과 비교하는 경우는 제외합니다.풀이 과정해시 테이블 생성: 전화번호 목록의 각 번호를 키로 하여 해시 테이블에 저장합니다.접두사 탐색: 전화번호 리스트에서 각 번호에..
해시를 이용한 '완주하지 못한 선수' 문제 풀이이 포스트에서는 프로그래머스 완주하지 못한 선수 문제를 해시를 활용하여 풀어보는 방법을 소개합니다.본 방법은 해시값의 합을 이용해 완주하지 못한 선수의 해시값을 계산한 후, 이를 딕셔너리에서 찾아내는 방식으로 진행됩니다.문제 개요문제 설명:참가자 명단(participant)과 완주자 명단(completion)이 주어질 때, 완주하지 못한 한 명의 선수를 찾는 문제입니다.(동명이인이 존재할 수 있습니다.)풀이 과정해시값 계산 및 누적:참가자 리스트의 각 원소에 대해 hash() 함수를 사용하여 해시값을 계산하고, 이들을 모두 더합니다.해시값 차감:완주자 리스트의 각 원소에 대해서 계산된 해시값을 누적합에서 차감합니다.딕셔너리 활용:참가자의 해시값을 key로, ..
https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정리1. 폰켓몬은 종류에 따라 번호로 구분한다. 같은 폰켓몬을 데려갈 수도 있지만 N/2의 폰켓몬 수까지 데려가려고 한다.2. 같은 폰켓몬은 최대 2마리까지 데려갈 수 있다.3. 가장 많은 폰켓몬을 고르기 위한 코드를 작성하라. 풀이과정1. 전체 리스트를 반으로 줄인 길이를 저장2. set함수를 통해 중복을 제거하고 리스트의 길이를 저장3. 두 길이 값을 서로 비교하여 맥스 값보다 중복제거 리스트가 크면 맥스 값..
https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 플로이드와샬def solution(n, s, a, b, fares): INF = 10000000 answer = INF graph = [[INF] * n for _ in range(n)] for i in range(n): for j in range(n): if i == j: graph[i][j] = 0 for f in fares: node1, n..
https://www.acmicpc.net/problem/2151 from collections import dequeimport sysinput = sys.stdin.readlinedx = [0, 1, 0, -1]dy = [1, 0, -1, 0]def bfs(x, y, dir): q.append([x, y, dir]) c[x][y][dir] = 1 ans = [] while q: x, y, dir = q.popleft() nx = x + dx[dir] ny = y + dy[dir] if 0 c[x][y][dir]: if a[nx][ny] != '*': c[nx][ny][..