목록배열 (7)
happy coding
문제 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. 출력 각 줄마다 주어..
문제 영식이는 직사각형 모양의 성을 가지고 있다. 성의 1층은 몇 명의 경비원에 의해서 보호되고 있다. 영식이는 모든 행과 모든 열에 한 명 이상의 경비원이 있으면 좋겠다고 생각했다. 성의 크기와 경비원이 어디있는지 주어졌을 때, 몇 명의 경비원을 최소로 추가해야 영식이를 만족시키는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다. 출력 첫째 줄에 추가해야 하는 경비원의 최솟값을 출력한다. 아직 내 머리엔 복잡했다. import java.io.*; import java.util.*; public class Mai..
문제 구름 햄버거는 다양한 재료를 사용하여 만들어서 맛있기로 유명하다. 구름 햄버거는 N개의 재료를 순서대로 쌓아서 만들고, 구름 햄버거의 맛은 사용된 모든 재료의 맛의 정도를 더한 값이다. 완벽한 구름 햄버거를 만들기 위해서는 맛의 정도가 가장 높은 재료를 기준으로 위랑 아래로 갈수록 재료의 맛의 정도가 감소하거나 같아야 한다. 플레이어는 N개의 재료를 순서대로 쌓아서 구름 햄버거를 하나 만들었다. i번째 쌓은 재료의 맛의 정도가 ki라고 할 때, 플레이어가 만든 구름 햄버거의 맛을 구해보자. 만약 플레이어가 완벽하지 않은 구름 햄버거를 만들었다면 0을 출력한다. 입력 첫째 줄에 구름 햄버거에 들어가는 재료의 개수 N개가 주어진다. 그 다음 줄에 플레이어가 햄버거를 만들 때 쓴 재료의 맛의 정도 k1,..
정수형 배열을 자르는 방법은 배열의 일부분을 새로운 배열로 만드는 것을 의미하는데, 여기에는 2가지 방법이 있다. 1. 반복문을 통한 배열 복사 : public class ArraySlicingExample { public static void main(String[] args) { int[] originalArray = {1, 2, 3, 4, 5}; int startIndex = 1; int endIndex = 3; // endIndex는 자를 범위에 포함되지 않음 int newSize = endIndex - startIndex; int[] slicedArray = new int[newSize]; for (int i = startIndex, j = 0; i < endIndex; i++, j++) { s..
void reverseArray(int[] arr) { int n = arr.length; int[] reversed = new int[n]; for (int i = 0; i < n; i++) { reversed[n - i - 1] = arr[i]; } // 원래 배열로 복사 for (int i = 0; i < n; i++) { arr[i] = reversed[i]; } } 위 코드를 이용해서 class Solution { public int[] solution(int[] num_list) { int n = num_list.length; int[] answer = new int[n]; int[] reversed = new int[n]; for (int i = 0; i < n; i++) { reversed..
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int x = sc.nextInt(); int[] arr = new int[n]; //크기가 n개인 배열 생성 for (int i=0;i
배열 배열이란 동일한 타입의 데이터가 여러 개 저장되어 있는 데이터 저장 장소를 의미한다. 배열 안에 있는 각각의 데이터들은 정수로 되어 있는 번호에 의해 접근이 가능하다. 배열을 이용하면, 여러 개의 값을 하나의 이름으로 처리할 수 있다. 여기서 배열 원소의 번호를 인덱스 라고 한다. 배열의 크기가 주어지지 않았을 때 자동적으로 초기값의 개수만큼이 배열의 크기로 잡힌다. 배열을 복사하려는 경우 단순히 "=" 으로 복사하면 컴파일 오류가 나기 때문에, for 문을 이용하여 복사해야 한다. int a[SIZE]; int b[SIZE]; b = a;//error for (i=0;i 1000 printf("%d\n", arr);//배열의 첫 번째 인자의 시작 주소를 의미 printf("%d\n", arr[0]..