알고리즘 5

[백준] BOJ 2360번 색종이 만들기

https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 접근 : 정사각형으로 이루어진 정사각형 모양의 종이가 주어지고, 이는 하얀색 또는 파란색으로 색칠되어있다. 이 종이를 4등분하여 나누어진 부분이 모두 같은 색이 아니라면 나누어진 부분을 다시 4등분한다. 이를 더 이상 나누어질 수 없을 때까지 반복하고, 만약 같은 색이라면 1개의 사각형으로 더 이상 나누지 않는다. 결과적으로 하얀색, 파란색의 사각형 개수를 각각 출력하는..

알고리즘 2023.12.26

[프로그래머스]타겟 넘버

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 : 예시 : 해결 : 배열에 주어진 수들에 + 또는 -부호를 붙이고, 그 합을 구하는 문제이다. 처음에는 배열의 순서까지 고려해야되나 싶었는데, 덧셈과 뺄셈 문제이기 때문에 순서는 고려하지 않아도 된다. 깊이우선탐색(DFS)를 이용하여 문제를 풀었다. 고려하고 있는 인덱스의 숫자를 더하는 경우와 빼는 경우로 나누고, 이를 각각 재귀함수로 호출하였다. 인덱스가 numbers의 크기와 같다면, ..

알고리즘 2023.12.07

[백준] BOJ 11657번 타임머신

https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net 문제 : N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 버스가 M개 있다. 각 버스는 A, B, C로 나타낼 수 있는데, A는 시작도시, B는 도착도시, C는 버스를 타고 이동하는데 걸리는 시간이다. 시간 C가 양수가 아닌 경우가 있다. C = 0인 경우는 순간 이동을 하는 경우, C < 0인 경우는 타임머신으로..

알고리즘 2023.12.06

[프로그래머스] H-Index

https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 및 예시 : 해결 : 이진탐색을 활용하여 해결할 수 있는 문제이다. 논문의 수의 범위인 1 ~ citations.size() 사이의 수들의 H-Index 가능 여부를 체크하여, 그 중 가장 큰 값을 정답으로 리턴하면 된다. 가장 먼저 할 일은 오름차순으로 정렬하는 일이다. H-Index 가능 여부를 체크하는 수보다 큰 수 중 가장 작은 값을 찾는 과정을 통해 H-Index 가능 여부를 체크하..

알고리즘 2023.12.05

[프로그래머스] 가장 큰수

https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 : 예시 : 해결 : numbers 배열 안의 숫자들을 적절히 나열하여 가장 큰 수를 구하는 문제이다. 배열의 값의 가장 큰 자리 수의 숫자가 큰 순서대로 나열하면 해결되지 않을까싶었다. 각 자릿 수가 일치하는 경우, 다음 자릿 수로 넘어가 비교하였다. 비교하는 두 숫자의 길이가 다른 경우에는 길이가 짧은 숫자를 1의 자리까지 비교한 이후에 가장 큰 자릿 수로 돌아가 길이가 긴 숫자의 1의 ..

알고리즘 2023.12.05