목록백준 (32)
Hayden's Archive
알고리즘 문제 출처 : https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 � www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Stack stack = new Stack(); Scanner sc = new Scanner(System.in); int num = sc...

알고리즘 문제 풀이 : https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 � www.acmicpc.net 백준 단계별로 풀어보기 - 문자열 문제 중 가장 낮은 정답 비율을 기록한 문제. 문제 자체가 어렵다기보다는 고려해야 할 예외가 많다. 단어 사이에 들어가있는 공백, 맨 앞에 있는 공백, 맨 뒤에 있는 공백을 모두 고려했고 이클립스에서는 잘만 돌아가는데 백준에서는 틀렸다고 떴다. 4번 정도 고배를 마시고 내가 놓친 예외가 뭐가 있을까 계속 생각해봤다. 내가 미처 한 가..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net 내가 작성한 코드 입력받은 문자열을 char 배열로 바꾸고, 반복문을 돌려 기준이 되는 charStr[j] 값을 두고 k번째는 같지 않은데 k+1번째는 같을 경우 그룹 단어에 해당되지 않으므로 break하여 반복문을 깨고 나오도록 하였다. 그룹단어를 식별하기 위해서 boolean 타입의 flag를 따로 두었다. 어떻게 문제는 해결했지만 다소..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= www.acmicpc.net 내가 작성한 코드 String 클래스의 substring() 메소드를 통해 주어진 문자열을 먼저 세개씩 자르고 "dz="와 일치하는지 살펴본다. 그 뒤 문자열을 두개씩 잘라서 나머지 변경된 크로아티아 알파벳과 비교한다. 이 때 "dz="와 "z="는 중복으로 측정될 수 있고, 크로아티아 알파벳을 추려낸 후 남아있는 알파벳의 개수도 합산해야 ..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 www.acmicpc.net 내가 작성한 코드 거의 처음 써보는 3차원 배열. 테스트 케이스의 숫자를 받고 또 그 안으로 들어가서 각각의 횟수와 문자열을 받고 그 횟수에 맞게 문자열을 순차적으로 반복하다 보니 3차원 배열까지 가게 되었다. 문자열에서 순차적으로 인덱스에 접근하기 위해 String 클래스의 charAt() 메소드를 활용하였다. import java.util.Scanner; pub..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 내가 작성한 코드 String으로 입력을 받고 String 클래스의 charAt() 메소드를 활용하여 문자열의 0번째 값을 char형으로 변환시키고 int형으로 캐스팅하면 아스키코드 값을 구할 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String in..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 �� www.acmicpc.net 내가 작성한 코드 먼저 한수가 맞는지 아닌지 boolean 값을 리턴해주는 함수를 작성한다. temp를 10으로 나눈 나머지를 순차적으로 배열에 저장하는데 temp는 10으로 나눈 몫으로 계속해서 갱신해주다가 0이 되었을 때 반복문을 끝낸다. 지표가 되는 변수 index를 활용하여 배열 save를 반복문으로 돌리는데 현재 순서 인덱스값에서 다음 순서 인덱스값을 빼며 공차 ..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌� www.acmicpc.net 내가 작성한 코드 public class Main { private static int notSelfNum (int n) { int total = n; int quotient = n; while(quotient > 0) { total += quotient % 10; quotient /= 10; } return total; }..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1546 따로 최댓값으로 나눈 뒤 100을 곱하고 합하는 것이나 총합을 최댓값으로 나눈 뒤 100을 곱하는 것이나 결과는 같게 나온다. 그런 생각에서 코드를 짰는데 결과가 이상하게 나와서 당황스러웠다. 알고 보니 모두 int형으로만 변수를 선언해서 나눈 결과가 온전히 나오지 안고 몫만 나왔던 것. 필요한 숫자들을 따로 double형으로 선언하였고 입력값도 double형으로 받으니 정답! import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double max ..

별 찍기는 그냥 규칙성 찾기와 반복문이 전부다. 규칙만 찾고 반복문 코드만 짜면 끝. 알고리즘 문제 출처 : 백준 https://www.acmicpc.net/problem/2523 2523번: 별 찍기 - 13 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 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(); for(int i=0; i