전체 글
-
백준 2789번: 유학 금지문자열(String) 2018. 6. 29. 12:37
https://www.acmicpc.net/problem/2789 1. 문제아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, 학생들의 이유가 모두 달랐기 때문에 정확한 이유를 찾을 수 없었다. 정부의 고위직은 뛰어난 학생들이 자꾸 유학을 가는 현상을 매우 불쾌해 했다. 가장 많은 학생들이 유학을 가는 대학교는 영국의 캠브리지 대학교이다. 정부는 인터넷 검열을 통해서 해외로 나가는 이메일의 내용 중 일부를 삭제하기로 했다. 이메일의 각 단어 중에서 CAMBRIDGE에 포함된 알파벳은 모두 지우기로 했다. 즉, 어떤 이메일에 LOVA란 단어가 있다면, A는 CAMBRID..
-
백준 5586번: JOI와 IOI문자열(String) 2018. 6. 29. 12:34
https://www.acmicpc.net/problem/5586 1. 문제입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열을 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같이 "JOIOIOI"에는 JOI가 1개, IOI가 2개 있다. 2. 알고리즘키워드 - 문자열 처리O(n) 3. 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #include #include #include #include #include #include #include #include #include #in..
-
백준 1120번: 문자열문자열(String) 2018. 6. 29. 12:18
https://www.acmicpc.net/problem/1120 1. 문제길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이 때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다. A의 앞에 아무 알파벳이나 추가한다. A의 뒤에 아무 알파벳이나 추가한다. 이 때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오. 2. 알고리즘키워드 - 문자열 처리 3. 코드 12345678910111213141516171819202122232..
-
백준 3986번: 좋은 단어문자열(String) 2018. 6. 27. 21:59
https://www.acmicpc.net/problem/3986 1. 문제이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다.보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 깨고 말았다.안타깝게도 자는 동안 키보드가 잘못 눌려서 보고서의 모든 글자가 A와 B로 바뀌어 버렸다! 그래서 평석이는 보고서 작성을 때려치우고 보고서에서 '좋은 단어'나 세보기로 마음 먹었다.평석이는 단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 B끼리) 쌍을 짓기로 하였다. 만약 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 그 단어는 '좋은 단어'이다. 평석이가 '좋은 단어..
-
백준 5218번: 알파벳 거리문자열(String) 2018. 6. 27. 21:28
https://www.acmicpc.net/problem/5218 1. 문제길이가 같은 두 단어가 주어졌을 때, 각 단어에 포함된 모든 글자의 알파벳 거리를 구하는 프로그램을 작성하시오. 두 글자 x와 y 사이의 알파벳 거리를 구하려면, 먼저 각 알파벳에 숫자를 할당해야 한다.'A'=1, 'B' = 2, ..., 'Z' = 26. 그 다음 y ≥ x인 경우에는 y-x, y < x인 경우에는 (y+26) - x가 알파벳 거리가 된다.예를 들어, 'B'와 'D' 사이의 거리는 4 - 2 = 2이고, 'D'와 'B' 사이의 거리는 (2+26) - 4 = 24이다. 2. 알고리즘키워드 - 문자열 3. 코드 12345678910111213141516171819202122232425262728293031323334..
-
백준 10988번: 팰린드롬인지 확인하기문자열(String) 2018. 6. 27. 21:07
https://www.acmicpc.net/problem/10988 1. 문제펠린드롬인지 확인 하는 문제 2. 알고리즘키워드 - 문자열, 펠린드롬 3. 코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include #include // min#include #include #include #include #include #include #include #include #define M_PI 3.14159265358979323846 using namespace std; void isPalindrome(char str[]){ // Start from leftmost and rightmost corners of..
-
백준 1152번: 단어의 개수문자열(String) 2018. 6. 27. 20:21
https://www.acmicpc.net/problem/1152 1. 문제영어 대소문자와 띄어쓰기만으로 이루어진 문장이 주어진다. 이 문장에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 2. 알고리즘키워드 - 문자열 3. 코드 12345678910111213141516171819#include main() { int i; char s[1000001] = { 0 }; int count = 0,butt=1; gets(s); for (i = 0; i > s; getline(cin, s); bool prvAlpha = false; int sol = 0; for (int i = 0; i = 'a' && ch
-
백준 1904번: 01타일다이나믹프로그래밍(DP) 2018. 6. 24. 16:44
https://www.acmicpc.net/problem/1904 1. 문제지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 지원이는 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 N개 수열로 이루어진 모든 2진 수열을 만들 수 없게 되었다. 예를 들어, N=1일 때 1만 만들 수 있고, N=2일 때는 00, 11을 만들 수 있다. (01, 10은 만들 수 없게 되었다.) ..