Seren dev's blog
article thumbnail
[프로그래머스] Lv.2 : 쿼드압축 후 개수 세기 - 자바[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 분할정복 알고리즘을 사용했다. 코드 class Solution { static int oneCnt = 0; static int zeroCnt = 0; public int[] solution(int[][] arr) { divideConquer(0, 0, arr.length, arr); int[] answer = {zeroCnt, oneCnt}; return answer; } static voi..

article thumbnail
[백준] 10830번 : 행렬 제곱 - 자바[Java]
Algorithm 문제 풀이/백준 2022. 11. 17. 19:05

10830번: 행렬 제곱크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다.www.acmicpc.net풀이재귀함수를 이용한 분할정복으로 문제를 풀 수 있다.n, b, arr 배열 값을 입력받은 다음 divideAndConquer() 재귀함수를 호출하여 arr의 b제곱(result 배열)을 구한다. 주의할 점B의 범위는 1 ≤ B ≤ 100,000,000,000 이기 때문에 int로 값을 받으면 NumberFormatException이 발생한다. 그래서 Long.parseLong을 사용하여 long으로 값을 받아야 한다.A^B의 각 원소를 1,000으로 나눈 나머지를 출력해야 하므로,..

article thumbnail
[백준] 2630번 : 색종이 만들기 - 자바[Java]
Algorithm 문제 풀이/백준 2022. 11. 17. 18:04

2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 풀이 재귀함수를 이용한 분할정복을 사용하여 문제를 풀 수 있다. main 함수에서 전체 종이의 한 변의 길이 N과 색종이의 위치 정보를 입력받고 divideAndConquer() 재귀 함수를 호출하여 (0, 0)부터 색종이 배열 탐색을 시작한다. divideAndConquer() 함수 내에서 인자로 받은 시작위치부터 색종이 배열을 탐색하다가, 시작 위치의 색과 다른 색을 발견하면 위 그림과 같이 색종이를 4등분하여 새로운 탐색을 시작해..

article thumbnail
[Softeer/소프티어] 수퍼 바이러스 - 자바[Java]

https://softeer.ai/practice/6292 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  풀이k * (p^10n) 을 구하는 문제다.다만 k, p,가 최대 10^8이 될 수 있고 n은 10^16이 입력으로 들어올 수 있기 때문에 k * (p^10n)을 아래 풀이와 같이 직접 구하면 시간초과가 뜬다.import java.util.*;import java.io.*;public class Main{ // k * p^10n public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Sys..