https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 내 풀이DFS를 활용하는 문제였습니다. 어느 타이밍에 더하고 빼야하는지 for문을 활용해서 만드려니 헷갈리고 중복되는 경우가 많았는데오히려 단순하게 재귀 함수를 2번 써서 +인 경우와 -인 경우를 고려하니 더 간결해졌습니다.종료 조건을 이중 if 문을 활용하여 만드는 것도 많이 헷갈리는 부분이었습니다. def solution(numbers, target): answer = 0 def..
https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 내 풀이경우의 수를 다양하게 생각하면서결국엔 세로이든 가로이든 크기를 비교하려면하나의 구성으로 통일해야 한다는 것을 깨달았습니다. 그래서 모든 사이즈를 크기 순으로 w, h를 구분하고그 안에서 최댓값이 얼마인지 판단했습니다. def solution(sizes): max_w, max_h = 0,0 for card in sizes: w, h = min(card), ma..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 내 풀이처음엔 단순하게 조건에 맞게 그대로 짜서 시도했습니다. 길이가 작은 순서대로 그 다음것들을 비교하면서 답을 찾는 식이죠.정확성 테스트에서는 문제 없이 다 통과했지만효율성 테스트에서 시간 초과로 전부 틀려서 답 인정이 안되었습니다. def solution(phone_book): answer = True phone_book = sorted(phone_book, key=lambda..
https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 내 풀이푸는 것 자체가 어려운 것은 아니였지만 제한사항에 대한 이해가 중요한 문제 였습니다. 해당 문제의 가장 중요한 포인트는 '여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있다' 였던것 같습니다. 대부분의 테스트 케이스가 여기서 문제가 생겨서 실패가 뜨더라고요. 다른 사람의 코드를 참고해보니 대부분 set을 활용한 차집합을 이용하거나, not in 을 활용한 lost, reserv..
https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제내 풀이pokemons 종류와 수를 딕셔너리 형태로 입력받고가져갈 수 있는 N/2 마리의 포켓몬과 포켓몬 종류의 최대 수를 비교하여포켓몬 종류가 N/2 보다 많다면 N/2 마리 만큼의 종류를 가져갈 수 있고, N/2 보다 적다면 최대가 보유한 포켓몬 종류 만큼이 된다. def solution(nums): pokemons = {} answer = 0 ..
https://www.acmicpc.net/problem/2828 문제상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M스크린의 위에서 사과 여러 개가 떨어진다. 각 사과는 N칸중 한 칸의 상단에서 떨어지기 시작하며, 스크린의 바닥에 닿을때까지 직선으로 떨어진다. 한 사과가 바닥에 닿는 즉시, 다른 사과가 떨어지기 시작한다.바구니가 사과가 떨어지는 칸을 차지하고 있다면, 바구니는 그 사과가 바닥에 닿을 때, 사과를 담을 수 있다. 상근이는 사과를 모두 담으려고 한다. 이때, 바구니의 이동 거리의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 M이 주어진다. (1 ≤ M 출력모든 사과를 담기 위해서 ..
https://www.acmicpc.net/problem/26170 문제5 x 5 크기의 보드가 주어진다. 보드는 1 x 1 크기의 정사각형 격자로 이루어져 있다. 보드의 격자는 사과가 1개 있는 격자, 장애물이 있는 격자, 빈칸으로 되어 있는 격자로 구분된다. 격자의 위치는 (r, c)로 표시한다. r은 행 번호, c는 열 번호를 나타낸다. 행 번호는 맨 위 위치가 0이고 아래 방향으로 1씩 증가한다. 열 번호는 맨 왼쪽 위치가 0이고 오른쪽으로 1씩 증가한다. 즉, 맨 왼쪽 위 위치가 (0, 0), 맨 아래 오른쪽 위치가 (4, 4)이다.현재 한 명의 학생이 (r, c) 위치에 있고 한 번의 이동으로 상, 하, 좌, 우 방향 중에서 한가지 방향으로 한 칸 이동할 수 있다. 학생이 사과가 있는 칸으로 ..
https://www.acmicpc.net/problem/1260 문제그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.입력첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과..
https://www.acmicpc.net/problem/2508 문제창영이가 드디어 취직을 했다!! 그가 30세까지 취직을 안하던 이유는 바로 마음에 다니는 직장을 찾지 못해서였다. 이번에 창영이가 취직한 곳은 사탕 공장이다. 사탕 공장에 다니면 사탕 처럼 달콤한 직장생활을 할 줄 알았지만, 8시간동안 사탕 품질을 검사해야 하는 작업은 너무나 지루했다.사탕의 품질은 다음과 같이 검사한다. 가장 먼저 사탕으로 가득 찬 박스를 연다. 그 다음 사탕의 개수와 사탕이 없는 곳의 개수를 센다.지루함을 견디지 못한 창영이는 결국 품질을 검사하는 프로그램을 작성하기로 했다.r행 c열 행렬이 주어진다. 이 행렬은 박스를 위에서 바라본 것이다. 행렬에는 다음과 같은 문자만 있다.".": 빈 곳"o": 사탕의 먹을 수 ..
https://www.acmicpc.net/problem/30802 문제2024년 2월 3일 개최 예정인 온사이트 그랜드 아레나에서는 참가자들에게 티셔츠 한 장과 펜 한 자루가 포함된 웰컴 키트를 나눠줄 예정입니다. 키트를 제작하는 업체는 다음과 같은 조건으로만 주문이 가능합니다. 티셔츠는 S, M, L, XL, XXL, 그리고 XXXL의 6가지 사이즈가 있습니다. 티셔츠는 같은 사이즈의 T장 묶음으로만 주문할 수 있습니다. 펜은 한 종류로, P자루씩 묶음으로 주문하거나 한 자루씩 주문할 수 있습니다. 총 N명의 참가자 중 S, M, L, XL, XXL, XXXL 사이즈의 티셔츠를 신청한 사람은 각각 S, M, L, XL, XXL, XXXL명입니다. 티셔츠는 남아도 되지만 부족해서는 안 되고 신청한 사이..
https://www.acmicpc.net/problem/11047 문제준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.내 풀이동전의 크기가 큰 순서부터 나눴을 때 몫이 나오면 해당 동전의 갯수를 저장해가는 식으로 풀었습니다...
https://www.acmicpc.net/problem/1620 문제문제 보다는 스토리에 가까워서 생략 (출처 참고)입력첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 물어봐도 괜찮아. 나는 언제든지 질문에 답해줄 준비가 되어있어.둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어와. 포켓몬의 이름은 모두 영어로만 이루어져있고, 또, 음... 첫 글자만 대문자이고, 나머지 문자는 소문자로만 이루어져 있어. 아참! 일부 포켓몬은 마지막 문자만 대문자일 수도 있어. 포켓몬 이름의 최대 길..