파이썬 (8) 썸네일형 리스트형 [프로그래머스] 파일명 정렬 파이썬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 알고리즘은 아래와 같다. 1. head, number, tail로 분리 2. sorted의 lambda로 다중 정렬 기준 주기 3. 비교시에 head의 경우 대소문자 구분 없는 것으로 비교하고 출력 때는 원래 것, number도 마찬가지로 비교는 숫자로 바꿔서 비교하고 출력할 때는 다시 원래 것 (문자열)로 해야 하기 때문에 튜플로 묶어서 저장한다. 4. 비교시에는 튜플의 1번째 원.. [프로그래머스] 튜플 파이썬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 입력받은 s를 리스트로 변환한다. 그 이후에는 만들어진 리스트의 요소를 하나씩 접근, answer 리스트에 중복이 되지 않도록 not in 을 사용하여 하나 씩 append 한다. 여기서 핵심은 {{2}, {2,1}, {2,1,3}, {2,1,3,4}} {{2,1,3,4}, {2}, {2,1,3}, {2,1}} {{1,2,3}, {2,1}, {1,2,4,3}, {2}} 일 경우 다 .. [프로그래머스] 기능개발 파이썬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 처음에 문제 이해가 좀 어려웠다. 1. progresses, speeds를 큐로 가정한다. 2. 모든 기능이 배포될 때까지, 즉 progresses가 빌 때까지 다음을 반복한다. progresses 길이만큼 순회하여 각 기능의 진행 상황을 더 해준다. 완성된 기능들이 있으면 배포한다. 그날 배포된 개수가 0보다 크면 answer에 넣는다. 3. 특정 날짜에 배포 개수들이 저장된 an.. [백준] 2178 미로 탐색 파이썬 문제 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 풀이 from collections import deque import sys input = sys.stdin.readline # N, M을 공백으로 구분하여 입력받기 N, M = map(int, input().split()) # 2차원 리스트의 맵 정보 입력받기 maze = [list(map(int, input().rstrip())) for _ in range(N)] # 이동할 네 방향 정의 (상, 하, 좌, 우) dx .. [백준] 2606 바이러스 파이썬 DFS/BFS 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 그래프 탐색 문제이다. 1번 컴퓨터를 통해 웜 바이러스에 걸릴 컴퓨터의 개수를 구하면 된다. 즉, 1번 노드와 연결된 노드의 개수를 구하면 된다. DFS, BFS 두 가지 방법으로 문제를 풀 수 있다. 문제에서 연결된 컴퓨터의 정보를 알려줄 때, 그래프는 무방향 그래프임을 주의해야 한다. 6 5 6 5 5 4 4 3 3 2 2 1 따라서 위와 같은 input이 주어지면 for _ in range(.. [백준] 2798 블랙잭 파이썬 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 풀이 단순하게 3중 반복문을 사용해 완전 탐색으로 풀었다. n,m = map(int,input().split()) card = list(map(int,input().split())) ans = 0 for i in range(0,n-2): for j in range(i+1,n-1): for k in range(j+1,n): sum = card[i] + card[.. [프로그래머스] 프린터 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 같은 우선순위 일 때, 구별하기 위해 2차원 배열로 나누었다. 2차원 배열로 만들어 2번째 값을 location에 해당하는 값, 다시 말해 내가 알고자 하는 인쇄물에 체크하고 deque를 사용해 계속 돌려주었다. 우선순위에 밀리면 뒤로 밀어내고, 우선순위에 맞다면 내가 찾는 값인지 체크를 확인한다. 만약 체크가 되어있지 않다면 빼내고 계속 돌린다. 정답 코드 from collection.. [프로그래머스] 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 먼저 리스트 scoville을 heapify 함수를 사용해 힙으로 만들어줘야 한다. 가장 첫 번째 원소, 즉 scoville[0]은 항상 힙의 루트 노드로 최솟값이기 때문에 scoville[0]이 K 보다 크거나 같을 때까지 반복문을 돌려준다. pop을 하지 않고 인덱스로만 비교해준다면 두 번째로 작은 값을 찾기 위해 세 번째 값까지 비교해야 하지만, 이 문제에서는 최솟값 2개를 뽑아 .. 이전 1 다음