본문 바로가기

Algorithm

(172)
[2020 KAKAO BLIND RECRUITMENT][문자열 처리] 문자열 압축 - Java 문제 바로가기 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 문자열을 다루는 문제입니다. 문자열을 몇 개 단위로 자를지 모두 봐줘야 하고, 문자열의 길이는 최대 1000이기 때문에 2중 for문으로 쉽게 풀 수 있습니다. class Solution { public int solution(String s) { int answer = s.length(); for(int subLen=1;subLen1) newStr+=Integer.toString(cnt)+standard; else newStr+=standa..
[BOJ-14888][완전 탐색/순열] 연산자 끼워넣기 - Java 문제 바로가기 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, �� www.acmicpc.net 입력으로 주어진 연산자들을 갖고 식을 만들어서 그 식의 최대/최솟값을 구하는 문제입니다. 완전 탐색으로 순열을 다 만들어서 풀어도 되고, 백트래킹으로 풀어도 됩니다. 6개월 전에 C++로 풀었던 백트래킹 코드도 올리게씀다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; i..
[BOJ-14503][시뮬레이션/BFS] 로봇 청소기 - Java 문제 바로가기 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 삼성 SW 역량테스트 기출문제로 시뮬레이션 문제입니다. 단순 시뮬레이션 문제라서 문제에서 요구하는 조건을 잘 생각해서 풀면 됩니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer..
[BOJ-14501][DP] 퇴사 - Java 문제 바로가기 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 딱 보자마자 DP로 풀면 되겠구나 싶었습니다. 하지만 N의 최댓값이 15기 때문에 완전 탐색해서 풀어도 되고 DFS로 풀어도 됩니다. 저는 DP를 잘 못하기 때문에 열심히 짱돌굴려서 풀어보았습니다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br ..
[BOJ-14500][시뮬레이션/DFS] 테트로미노 - Java 문제 바로가기 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변� www.acmicpc.net 블럭 네 개짜리 테트로미노를 만들어서 입력으로 주어진 맵에 테트로미노에 해당하는 구역의 합이 젤 큰 값을 구하는 문제입니다. 여러 방법으로 블럭을 만들 수 있습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static class..
[2018 KAKAO BLIND RECRUITMENT][문자열 처리] [1차] 비밀지도 - Java 문제 바로가기 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 입력으로 들어오는 숫자들을 토대로 지도를 만드는 문제입니다. class Solution { public static String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; for(int i = 0; i < n ;i++) { answer[i] = Integer.toBinaryString(arr1[i] | arr2[i]); answer[i] = Str..
[2017 카카오코드 예선][BFS] 카카오프렌즈 컬러링북 - Java 문제 바로가기 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 기본적인 BFS 문제입니다. 그림에 있는 영역의 개수와 그 중 가장 큰 영역의 칸의 개수를 구하면 됩니다. import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Queue; class Solution { static class Dir{ int y, x; Dir(int y, int x)..
[BOJ-14499][시뮬레이션] 주사위 굴리기 - Java 문제 바로가기 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 일반적인 시뮬레이션 문제입니다. 마찬가지로 주어진 제한 조건들을 잘 고려해서 풀어야 합니다. 삼성 SW 역량 테스트 문제가 점점 어려워지는 것 같습니다.. 최근에 나온거 보다가 윗 쪽에 있는 거 보면 선녑니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; impor..