본문 바로가기

백준38

[Java] 백준 10828번 & 스택 스택(Stack)이란? 사전적 의미로 ‘쌓다, 채우다, 무더기’ 라는 뜻으로 선형 리스트의 형태로 한쪽 끝에서만 자료를 넣고 뺄 수 있는 후입선출 LIFO(Last in first out) 구조이다. 즉, 스택에 가장 나중에 추가한 항목이 가장 먼저 제거되는 구조이다. 스택 연산 pop() : 스택에서 원소를 삭제하는 연산. push(Element item) : 스택에 원소를 추가하는 연산. size() : 스택의 크기 반환 peek() : 맨 위의 원소 조회(확인) / pop()과 다르게 삭제X isEmpty() : 스택이 비었는지 확인/ 비었으면 true , 아니면 false 스택 구현 1. 배열을 통한 스택 구현 장점 : 접근 속도가 빠르고 구현하기도 쉽고 메모리가 적다. 단점 : 변경이 용이하지 .. 2020. 4. 21.
[Java] 백준 1543 문서검색 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String.. 2020. 3. 11.
[Java] 백준 1145 적어도 대부분의 배수 https://www.acmicpc.net/problem/1145 1145번: 적어도 대부분의 배수 첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s= new Scanner(System.in); int arr[]= new int[5]; int cnt=0; int ret=1; for(int i=0;i 2020. 3. 3.
[Java] 백준 11052번 카드 구매하기 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); //카드 개수 입력 //System.out.println("카드 개수를 입력하시오: "); int N = s.nextInt(); int cos[] = new int[N+1]; int[] .. 2020. 1. 11.
[Java] 백준 2193번 이친수 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되 www.acmicpc.net 풀이 dp[N] = N자리 수일때 가질 수 있는 이친수의 개수 dp[1] = 1 (1) dp[2] = 1 (10) dp[3] = 2 (10.. 2020. 1. 11.
[Java] 백준 10844번 쉬운 계단 수 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { long cnt = 0; Scanner s = new Scanner(System.in); int N = s.nextInt(); long dp[][] = new long [N+1][10+1]; //한 자리 수 초기화 for(int i = 0; i < 10; i++) { dp[1][i]=1; } for(int i=2; i 2020. 1. 11.