Algorithm

· Algorithm
문제어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.입력입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.출력121 -> yes1231..
· Algorithm
백준 1181 단어정렬문제알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로단, 중복된 단어는 하나만 남기고 제거해야 한다.입력첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.시간 제한 및 메모리 제한2초, 256MB문제 해결 키Arrays.sort(arr, new Comparator(){ @Override public int compare(String o1, String o2){ return 0; })코드package main..
· Algorithm
1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 해당 문제는 N * M 행렬이 주어졌을 때, 8 * 8 정사각형으로 잘랐을 때, 자른 정사각형들 영역 중에, 가장 최소로 칸을 색칠하는 값을 구해야 하는 문제입니다. row : N / col : M 으로 했을 때 아래와 같이 체스판을 그릴 수가 있습니다. board[N][M] 8 * 8 의 정사각형으로 잘랐을 때, 나올 수 있는 정사각형 모양의 체스판 중 가장 다시 칠해야 하는 최솟값을 찾으면 됩니다. [0][0] 자리에 B 또는 W 색이 올 수 있기 때..
· Algorithm
27866번: 문자와 문자열 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$) www.acmicpc.net 문제 단어 S와 정수 i가 주어졌을 때, S의 i번째 글자를 출력하는 프로그램을 작성하시오. 저는 문자열 함수 인 charAt()를 사용했습니다. package main; import java.util.*; import java.io.*; // The main method must be in a class named "Main". class Main27866 { public static void main(String[] args) throws Exc..
· Algorithm
10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 이 문제는 높이 H, 폭 W으로 구성된 호텔에 N 번째 사람이 가장 가깝게 들어갈 호실을 구하는 문제입니다. 이 문제의 핵심은 엘레베이터를 타고 층수로 올라가는 거리를 따지지 않는다는 점입니다. 문제에서 102호 보다 2101호를 선호한다는 것에 힌트가 있습니다. 저는 해당 문제를 4가지 경우의 수를 세우고 문제에 접근하였습니다. 1. 높이 H가 N 명 보다 작은 경우 2. 높이 H가 N 명 보다 작고, N 이 H와 나누어 떨어지는 경우 3. 높이 H..
· Algorithm
본 포스팅은 “Do it! 알고리즘 코딩 테스트 자바 편” 의 학습용도입니다. 문제분석하기 질의의 개수가 10만이므로, 질의마다 합을 구하면 안되고, 구간 합 배열을 이용해야 한다. 구간 합 배열이 1차원에서 2차원으로 확장된 것으로 생각하여 구간 합 배열을 어떻게 구성할지 고민하는 것이 이 문제의 핵심이다. 2차원 구간 합 배열은 다음과 같이 정의할 수 있다. 2차원 구간 합 배열 D[X][Y]의 정의 D[X][Y] = 원본 배열의 (0,0) 부터 (X,Y)까지의 사각형 영역 안에 있는 수의 합 1차원 배열 구간 합이 궁금하다면? 백준[11659] - 구간 합 구하기 4 ✏️ 문제분석 수의 개수와 합을 구해야 하는 횟수는 최대 10만 구간마다 합을 매번 계산하면 0.5초 안에 모든 구간 합계산을 끝낼 ..
· Algorithm
✏️ 문제분석 수의 개수와 합을 구해야 하는 횟수는 최대 10만 구간마다 합을 매번 계산하면 0.5초 안에 모든 구간 합계산을 끝낼 수 없음 💡 구간 합을 매번 계산하면 최악의 경우, 1억 회 이상의 연산을 수행하게 되어 1초 이상의 수행 시간이 필요함 🤚🏻 손으로 풀기 N개의 수를 입력받음과 동시에 합 배열 생성 합 배열 공식 S[i] = S[i-1] + A[i] [] : 인덱스 배열 A 5 [1] 4[2] 3[3] 2[4] 1[5] 합 배열 S 5 9 12 14 15 구간 합 공식 S[j] - S[i-1] 질의(1,3) : S[3] - S[0] = 12 질의(2,4) : S[4] - S[1] = 14 - 5 = 9 질의(5,5) : S[5] - S[4] = 15 -14 = 1 🖊️ Sudo 코드 작성..
· Algorithm
문제 링크 : www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 풀었던 답 import java.util.Scanner; class Main { public static void main(String[] args) { // TODO Auto-generated method stub int fiveH = 500; int oneH = 100; int fiveT = 50; int ten = 10; int five = 5; int one = 1; ..
runnnerDevHong
'Algorithm' 카테고리의 글 목록