Problem Solving
-
백준 17413 단어 뒤집기2 문제 풀이 Stack 활용 ( Java )Problem Solving/Java 2019. 10. 19. 11:33
17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다. 문자열의 시작과 끝은 공백이 아니다. ''가 문자열에 있는 경우 번갈아가면서 등장하며, '') { // 태그 종료일 때 tag = false; // tag 안인지 확인하는 flag를 false로 바꾸고 bw.write(s.charAt(i)); // 그 단어 그대로 출력 } else if (tag) { // 태그 안일 경우 bw.write(s.charAt(i)); // 그 단어 그대로 출력 } else { // 태그 바깥일 경우 if(s.charAt(i)..
-
백준 1158번 조세퍼스 문제 큐 활용 풀이 ( Java )Problem Solving/Java 2019. 9. 5. 18:11
1158번: 조세퍼스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 import java.io.*; import java.util.LinkedList; import java.util.Queue; public class Main { public stat..
-
백준 1406번 에디터 문제 Stack 활용 풀이 ( Java )Problem Solving/Java 2019. 9. 5. 15:46
1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 www.acmicpc.net 처음엔 ArrayList를 활용해서 풀었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ..
-
백준 1874번 스택 수열 문제 풀이 Stack 활용 ( Java )Problem Solving/Java 2019. 9. 5. 12:40
1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394import java.io.*;import java.util.S..
-
백준 9012번 괄호 문제 풀이 Stack 활용 ( Java )Problem Solving/Java 2019. 9. 5. 11:03
9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4..
-
백준 9093 단어 뒤집기 문제 풀이 Stack 활용 ( Java )Problem Solving/Java 2019. 9. 4. 23:45
9093번: 단어 뒤집기 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ..
-
알고리즘 문제를 풀 때 가장 좋은 입출력 방법은? (C, C++, Java )Problem Solving/Know-how 2019. 9. 4. 17:06
- C 입력 : scanf 출력 : printf - C++ 입력 : scanf (단 ios_base::sync_with_stdio(false); 와 cin.tie(NULL) 을 사용하면 cin 이 빠르다. 하지만 이럴 경우 stdio의 함수들은 사용할 수 없다) 출력 : printf (단 ios_base::sync_with_stdio(false); 를 사용하고 줄바꿈을 '\n'으로 처리하면 cout이 더 빠르다 물론 이 때도 stdio 함수들은 사용할 수 없다 ) - Java 입력 : BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); 출력 : BufferedWriter bw =..
-
백준 단계별 문제풀기 5단계 클리어Problem Solving 2019. 7. 16. 15:51
확실히 이쯤오니까 C++에 대한 이해도가 많이 떨어지는 게 느껴진다. 훑어보고 문제 풀며 손에 익히는 정도로는 뒤로 갈수록 헤맬 것 같아서 백준 랭킹 20위에 빛나는 라이님 블로그 ( https://kks227.blog.me/ ) 를 통해 C와 C++을 좀 더 심도있게 볼 예정 그런 계기를 준 만큼 많이 틀리고 많이 헤맸지만 얻은 건 많았다. 정리를 하자면 1. 10818번 - 최소, 최대 ( https://www.acmicpc.net/problem/10818 ) 문제 - 지연 사유 if문과 부등호만 사용해 최소, 최대값을 구했는데 다른 분들 코드를 보니 min(), max()함수란 게 있었다. 이를 공부하다 지연 - 얻은 것 C++ 최소값과 최대값을 구하는 함수 https://takeknowledge...