분류 전체보기 116

[프로그래머스] 구명보트

programmers.co.kr/learn/courses/30/lessons/42885(%EA%B5%AC%EB%AA%85%EB%B3%B4%ED%8A%B8) 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제풀이: 그리디 1. people 배열을 정렬합니다. 2.1 반복문을 돌면서 배열의 가장 큰 원소(i)와 가장 작은 원소(index)를 더해 limit 보다 크면 answer +1을 해줍니다. 2.2 limit보다 작으면 구명 보트를 같이 탈 수 있기 때문에 answer+1을 해주..

[백준] 1795번 암호 만들기 java

www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 문제 풀이 : 백 트래킹을 이용합니다. 주어진 문자 종류 C 가지에서 서로 다른 L개의 알파벳으로 암호를 구하는데 조건을 해결하기 위해서는 1. 문자열을 담은 배열을 정렬 시킵니다. 2. 문자열을 L개 만큼 조합합니다. 3.1 이 때 최소 한 개의 모음과 최소 두개의 자음으로 구성되면 출력해줍니다. 3.2 아니라면 왔던 길을 다시 되돌아가서 새롭게 암호를 조합합니다. import java.util.Arrays; im..

[백준] 18222번 투에-모스 문자열 java

www.acmicpc.net/problem/18222 18222번: 투에-모스 문자열 0과 1로 이루어진 길이가 무한한 문자열 X가 있다. 이 문자열은 다음과 같은 과정으로 만들어진다. X는 맨 처음에 "0"으로 시작한다. X에서 0을 1로, 1을 0으로 뒤바꾼 문자열 X'을 만든다. X의 뒤에 www.acmicpc.net import java.util.*; public class Main { static long[] arr = new long[64]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); long k = sc.nextLong(); //1. 처음 2^n개의 원소가 한번 결정되어 문자열 s를 형성하면, f..

[프로그래머스] 2019 카카오 개발자 겨울 인턴십 징검다리 건너기 java

programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr class Solution { public int solution(int[] stones, int k) { int answer = 0, left = 0, right = Integer.MAX_VALUE; while(left =k) return false;//건널수 없음 } else count = 0; } return true; } }

[프로그래머스] 스타 수열 java

programmers.co.kr/learn/courses/30/lessons/70130 코딩테스트 연습 - 스타 수열 programmers.co.kr /* * * 조건 1 : 스타수열 길이 2이상 * 조건 2 : 인접한 2개의 값씩 묶었을 때, 모든집합에서 교집합 원소 갯수 1개 이상 * 조건 3 : 인접한 2개의 값씩 묶었을 때, 각 집합에 있는 2개의 값은 서로 다른 값 * * */ class Solution { public static int solution(int[] a) { int answer = 0; int[] count = new int[a.length];//a 원소의 등장횟수 for (int i = 0; i < a.length; i++) count[a[i]]++; for (int i = 0..

[프로그래머스] 짝지어 제거하기 java

programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr import java.util.Stack; class Solution { public static int solution(String s){ int answer = 0; Stack stack = new Stack(); for (int i = 0; i < s.length(); i++) { if(stack.isEmpty()) stack.push(s.charAt(i))..

[백준] 1244 스위치 켜고 끄기 java

www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt()+1; int[] sw = new int[n]; for (int i = 1; i < n; i++) { sw[i] = sc.nextInt(); } int ..

[백준] 1543 문서 검색 java

www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 문제 풀이 : substring 함수로 찾아야 할 문자열의 길이만큼 검사하고 같은 문자라면 i를 증가시켜줍니다. import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String doc = sc.nextLine(); String find = sc.nex..

[백준] 평범한 배낭 java

www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 풀이 : 배낭이 비어있는 상태에서 시작하여 물건을 하나씩 배낭에 담는 것을 현재 배낭에 들어있는 물건의 가치가 큰 것을 고르면서 배낭 용량의 무게를 검사해야합니다. 1. dp[i-1][j] : 물건 i를 포함하지 않습니다. 즉 그 전과 동일합니다. 2. dp[i-1][j-w[i]]+v[i] : 물건 i를 포함합니다. 물건 i의 가치 + 물건..

[프로그래머스] 등굣길

programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제 설명 : m X n 크기의 격자모양에서 집이 있는 좌표는 (1,1)이고 학교가 있는 좌표는 (m,n) 입니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단 경로의 개수를 1,000,000,007로 나눈 나머지를 출력하기 문제 풀이 : 2차원 배열 map을 만들어서 puddles 좌표(물 웅덩이를) 위치를 -1로 초기화 해둡니다. 집이 있는 좌..