// 최상단에 jquery를 추가해주자
[Python]Baekjoon 21736번: 헌내기는 친구가 필요해(BFS)
·
코딩 테스트 연습/백준
1. 문제 https://www.acmicpc.net/problem/21736 21736번: 헌내기는 친구가 필요해 2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 www.acmicpc.net 캠퍼스(그래프)를 이동하면서 주인공이 만날 수 있는 사람의 수를 구하는 문제이다. O는 빈공간, P는 사람, X는 벽, I는 주인공의 위치이다. 2. 풀이 첫번째로 주의해야 하는 부분은 그래프의 입력을 공백 단위로 받지 않고 문자열로 받고 있다는 점이다. 처음에는 조금 당황했는데 그냥 똑같이 list에 넣으면 똑똑한 파이썬이 알아서 처리해주었다. 두번째로 주의해야 하는 부분..
[Python]Programmers 할인 행사(lv2)
·
코딩 테스트 연습/프로그래머스
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 필요한 물건의 배열이 주어지고, 각 물건이 필요한 개수가 담겨있는 배열이 주어진다. 할인하는 품목이 담겨있는 배열이 주어질 때 연속하는 10일동안 필요한 물건을 모두 할인받고 구매할 수 있는 경우의 수가 몇 개 있는지 구하는 문제이다. 2. 풀이 사야하는 물건의 종류와 개수가 각각의 배열로 주어진다. 그렇기 때문에 우선 물건의 종류와 개수를 매칭시켜야 한다. 나는 dict 자료구조를 ..
[Python]Baekjoon 7569번: 3차원 토마토(BFS)
·
코딩 테스트 연습/백준
1. 문제 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net N, M 개의 칸에 토마토가 들어있고 이 상자를 H층만큼 쌓아 올린다. 0은 익지 않은 토마토, 1은 익은 토마토, -1은 빈칸을 의미한다. 익은 토마토와 인접해 있는(상, 하, 좌, 우, 위, 아래) 토마토는 하루가 지나면 익는다. 토마토가 모두 익는데 며칠이 걸릴까? 2. 풀이 최소 일수를 구하는 문제는 BFS를 이용한다. 7576번 토마토 문제와 동일한 로직..
[Python]Programmers 연속 부분 수열 합의 개수(lv2)
·
코딩 테스트 연습/프로그래머스
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 원형 수열의 원소가 주어질 때, 연속된 부분 수열의 합으로 만들 수 있는 수의 개수를 구하는 문제이다. 2. 풀이 연속 된 '부분' 수열이기 때문에 elements 원형 수열을 두 바퀴 까지만 생각해주면 된다. 처음 문제를 봤을 때 이 부분을 생각하지 못해서 막막했었다. 이 부분을 생각해낸다면 elements에 elements를 이어붙인 배열을 만들고 리스트를 슬라이싱해서 부분합의 종..
[Python]Baekjoon 7576번: 토마토(BFS)
·
코딩 테스트 연습/백준
1. 문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net N, M 개의 칸에 토마토가 들어있다. 0은 익지 않은 토마토, 1은 익은 토마토, -1은 빈칸을 의미한다. 익은 토마토와 인접해 있는(상, 하, 좌, 우) 토마토는 하루가 지나면 익는다. 토마토가 모두 익는데 며칠이 걸릴까? 2. 풀이 지금까지 익숙하게 풀어왔던 BFS에 조금 더 생각을 해야 하는 문제였다. 가장 핵심적인 부분은 BFS의 시작 지점이 여러 개인데 이를 ..
[Python]Programmers 귤 고르기(lv2) - Counter
·
코딩 테스트 연습/프로그래머스
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 각 귤의 크기가 담겨있는 배열에서 k 개의 귤을 선택할 때 서로 다른 크기의 귤을 최소한으로 선택하는 방법을 구하는 문제이다. 각 귤의 크기가 담겨있는 배열이 주어지면 서로 다른 크기의 수의 최소값을 출력하면 된다. 2. 풀이 무난하게 풀었다고 생각했는데 역시나 시간초과가 발생했다. 반복문을 통해 주어진 배열을 돌면서 chks(중복을 검사하는데 사용할 배열)에 있으면 넘어가고 chks..