코딩테스트 16

[프로그래머스] 전력망을 둘로 나누기_자바

https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 송전탑 전선을 하나씩 끊어보면서 가장 적은 차이를 냈을 때를 찾는 것. BFS를 사용한다. public int solution(int n, int[][] wires) { int answer = n-1; // 송전탑 개수 최대 차이 a = new int[n+1][n+1]; for(int i=0; i

[프로그래머스] 소수 찾기_자바

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr https://hu-coding.tistory.com/132 [Java] 프로그래머스 Lv.2 : 소수 찾기 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니 hu-coding.tistory.com ..

[프로그래머스] 위장_자바

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 예를 들어 상의가 A벌, 하의가 B벌, 안경이 C벌 있다고 하자. 상의, 하의, 안경을 조합한 경우의 수는 A*B*C 이다. 하지만 각 의상을 선택 안 하는 경우도 있기 때문에 경우의 수는 (A+1)*(B+1)*(C+1) 이다. 여기에 모두 선택 안 하는 경우를 뺀다. import java.util.*; public class P4 { public static void main(String[] a..

[백준] 수들의 합_자바

https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 자연수 N의 최댓값을 구해야하기 때문에 작은 자연수부터 더해야할 것이다. EX) S=60 자연수 1부터 합이 60을 넘어갈 때까지 더한다. 11까지 더했을 때 60을 넘긴다. 1+2+3+4+5+6+7+8+9+10+11 = 66 60을 만드려면 66에서 6을 빼면 된다. 이렇게 되면 서로 다른 N개의 자연수를 더해 S를 만들 수 있다. 따라서 자연수 개수는 11-1 = 10개이다. import java.util.Scanner; public class P1789 { public static void main(Strin..

알고리즘/백준 2022.11.12

[백준] 그룹 단어 체커_자바

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문자열로 문자 배열 만듦. 바로 앞 문자와 비교해서 같으면 넘어가고 다른데 이전에 나온적 있다면 그룹 단어가 아님, 나온적 없다면 그룹 단어가 될 수 있음 이전에 나왔는지 확인하기 위해 알파벳 개수 크기로 int 배열 만들었다. 문자 배열에서 나온 알파벳을 확인하려면 확인 배열 인덱스가 알파벳-97인 부분 값이 1인지 확인하려고 했다. 1이면 이전에 나온 알파벳이고..

알고리즘/백준 2022.11.10

[백준] 통계학_자바

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 산술평균, 중앙값, 최빈값, 범위를 차례로 구하는 문제 산술평균은 Math.round()를 사용해야 하는데 Math.floor()를 사용하는 실수를 함 중앙값과 범위는 쉽게 구했지만 최빈값..

알고리즘/백준 2022.11.10

[백준] 색종이_자바

https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 입력 첫 줄은 색종이 개수 두 번째 줄부터 각 사각형 왼쪽 아래 x 값과 오른쪽 아래 y값이 주어진다. 사각형 길이는 가로 세로 10이라고 했으니까 100*100인 행렬을 만들고, 행렬에서 사각형에 해당하는 부분을 값을 1로 한다. 행렬에서 1인 부분 개수가 답 import java.util.Scanner; public class P2563 { public static void main(String[..

알고리즘/백준 2022.11.10

[SWEA] 1213. [S/W 문제해결 기본] 3일차 - String

https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com SWEA 1213번 [접근 방식] 주어진 문장을 문자 배열로 만들고 (배열 길이)-(찾으려는 문장 길이) 까지 반복하면서 찾으려는 문장 찾음 import java.util.Scanner; public class P1213 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); for(int t=1; t

알고리즘/SWEA 2022.11.10

[SWEA] 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드

https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com SWEA 1240 [접근 방식] 뒤에서 부터 1을 찾는다. 찾은 1의 인덱스 => str.lastIndexOf("1") 따라서 위에서 찾은 인덱스 번호 앞 55개 문자들이 암호코드라고 할 수 있음 총 56개 문자들을 7개씩 쪼개서 아래 배열과 비교해 숫자를 찾는다. 0~9를 아래와 같이 표현해놨다. static String[] NUM = {"0001101","0011001","0010011","0111101", "0100011","0110001","0101111","0111011","0110..

알고리즘/SWEA 2022.11.10

[SWEA] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기

https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com SWEA 1225번 Queue를 사용해서 쉽게 풀 수 있었던 문제 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class P1225 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int T = 1; for(int t=1; t

알고리즘/SWEA 2022.11.10