본문 바로가기

공부-코딩테스트72

유기농 배추 (자바, 코딩테스트, 백준) https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 나의 풀이 : 재귀로 해결 테이블을 사용해서 배추의 위치를 찍는다. 그 다음 테이블을 탐색하며 배추를 찾는다면 처음 한번만 카운트를 한 다음 인접한 배추들을 모두 제거하는 remove메소드를 수행한다. 인접한 배추를 모두 뽑고 처음 한번만 카운트 한다면 문제에서 필요로 하는 답을 얻을 수 있다. 나의코드 import java.io.BufferedReader; import java.io.InputStreamRe.. 2022. 8. 9.
자바 리스트 특정 위치에 다른 리스트를 삽입하는 방법 배열.addAll(index,다른 배열); 배열의 index위치에 다른 배열 값들을 끼워 넣는다. 아래는 A.addAll(2,B)일 경우 SWEA의 1228번 문제에서 이용하였다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Solution_SWEA_1228 { public static void main(String[] args) throws Exception { BufferedReader br = new Buff.. 2022. 8. 8.
stream을 사용해서 String배열을 int형배열로 변경하는 법 코드 1. Arrays.stream(배열).mapToInt(Integer::parseInt).toArray() 이때 배열 => string[] 2. 배열.stream().mapToInt(Integer::parseInt).toArray() 한줄에 스페이스로 띄어져있는 int값들을 받을 때 유용하게 사용할 수 있다. mapToInt()안에는 람다식도 사용가능한 것으로 보인다. 하지만 코딩테스트에서 실제로 사용해보면 시간과 메모리가 훨씬 많이 잡아먹혔다. 편의상 사용할지는 몰라도 실제로 사용하지는 말자. 그냥 String배열에 담고 for문으로 하나씩 add하는게 빨랐다. int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parse.. 2022. 8. 7.
배열값을 특정값으로 채우는 방법 Arrays.fill() 자바로 static 변수를 활용해서 문제를 풀 경우 null과 ''가 output으로 봤을 때 차이가 없는 것에서 문제가 있었다. https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net char[][] 2차원 배열로 ''을 먼저 채워야 했는데 이 과정을 빼고 문제가 생겼었다. 테스트를 할 때 '' 채우는 것을 빼도 결과는 똑같았기 때문에 원인을 알 수 없었는데 아스키코드를 찾아본 결과 다르더라... 이때 간단히 Arrays... 2022. 8. 7.
1225. [S/W 문제해결 기본] 7일차 - 암호생성기 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14uWl6AF0CFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 큐 자료구조를 활용하면 간단히 풀 수 있는 문제 cnt를 반복할 때마다 갱신할 때 (cnt+1)%5을 하고 넣을 때 +1하여 사이클 구분없이 1,2,3,4,5,1,2,3,4,5....식으로 돌게 했다. 만약 해당 과정을 수행할 때 0이하의 수가 발생하게 된다면 사이클을 멈추고 마지막 한번 더 작업을 돌아 완성 코드 class Solution { public static void main(.. 2022. 8. 5.
다리 놓기 (자바, 코딩테스트, 백준) 문제 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 시간초과 import java.io.BufferedReader; import java.io.InputStr.. 2022. 8. 4.