분류 전체보기
-
7-6: 문자열포함관계조사Basic 2018. 10. 25. 21:23
문자열포함관계조사 ( str6.cpp ) 문제문자열 A와 B가 주어질 때, 문자열 B가 문자열 A에 포함되어 있는지를 조사하는 프로그램을 작성하시오. 단, 문자열 A와 B에는 알파벳으로만 이루어져 있으며, 공백은 포함되지 않는다고 가정한다. 입력첫 번째 줄에 문자열 A, 두 번째줄에 문자열 B가 주어진다. 각각의 길이는 1,000을 넘지 않는다. 출력문자열 B가 문자열 A에 포함되면 YES, 아니면 NO를 출력한다. 예제 입력Watermelon melon예제 출력YES import java.util.Scanner; public class str6 { /** * * 문제: * 문자열 A와 B가 주어질 때, 문자열 B가 문자열 A에 포함되어 있는지를 조사하는 프로그램을 작성하시오. 단, 문자열 A와 B에는 ..
-
7-5: 문자열 압축Basic 2018. 10. 25. 21:13
문자열 압축 ( str5.cpp ) 문제문자열의 길이가 굉장히 길 경우, 이를 압축하여 짧게 만들어야 할 때가 종종 있다. 이 문제에서는 문자열이 주어졌을 때, 다음과 같은 방법으로 압축한 결과를 출력하는 프로그램을 작성한다. 예를 들어, 문자열이 AAABBBBBCCCCDDDDEFFF 라고 하자. 이 문자열을 압축하면, 연속으로 같은 문자가 나오는 부분에, 그 문자가 몇번 나왔는지를 적어줌으로써 압축한다. 즉, 이 문자열은 3A5B4C4DE3F 로 압축된다. E는 1개밖에 없기 때문에 따로 1을 적어주지 않는다. 입력첫 번째 줄에 압축하고자 하는 문자열이 주어진다. 문자열의 길이는 10,000을 초과하지 않으며, 대문자만 입력된다. 출력문자열을 압축한 결과를 출력한다. 예제 입력AAABBBBBCCCCDD..
-
7-4: 팰린드롬 조사Basic 2018. 10. 25. 21:13
팰린드롬 조사 ( str4.cpp ) 문제문자열이 주어질 때, 이것이 팰린드롬인지 조사하는 프로그램을 작성하시오. 팰린드롬이란, 앞으로 읽을 때와 뒤로 읽을 때의 결과가 같은 문자열을 말한다. 입력첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력입력된 문자열이 팰린드롬이면 YES, 아니면 NO를 출력한다. 예제 입력abcba예제 출력YES 예제 입력abcbd예제 출력NO import java.util.Scanner; public class str4 { /** * * 문제: * 문자열이 주어질 때, 이것이 팰린드롬인지 조사하는 프로그램을 작성하시오. 팰린드롬이란, 앞으로 읽을 때와 뒤로 읽을 때의 결과가 같은 문자열을 말한다. * * * 입력: * * * 출력: * * * ..
-
7-3: 문자열 뒤집기Basic 2018. 10. 25. 21:12
문자열 뒤집기 ( str3.cpp ) 문제문자열이 주어질 때, 이를 뒤집어서 출력하는 프로그램을 작성하시오. 입력첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력문자열을 뒤집은 결과를 출력한다. 예제 입력Hello World!예제 출력!dlroW olleH import java.util.Scanner; public class str3 { /** * * 문제: * 문자열이 주어질 때, 이를 뒤집어서 출력하는 프로그램을 작성하시오. * * * 입력: * * * 출력: * * * 예제 입력: * Hello World! * * 예제 출력: !dlroW olleH * * * @param args */ public static void main(String[] args) { Scan..
-
7-2: 대소문자 변환Basic 2018. 10. 25. 21:12
대소문자 변환 ( str2.cpp ) 문제문자열이 주어질 때, 대문자는 소문자로, 소문자는 대문자로 바꾸는 프로그램을 작성하시오. 알파벳이 아닌 문자는 그대로 유지한다. 입력첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력문자열 내의 대문자는 소문자로, 소문자는 대문자로 바꾼 결과를 출력한다. 예제 입력hELLO wORLD!예제 출력Hello World! import java.util.Scanner; public class str2 { /** * * 문제: * * 문자열이 주어질 때, 대문자는 소문자로, 소문자는 대문자로 바꾸는 프로그램을 작성하시오. 알파벳이 아닌 문자는 그대로 유지한다. * * * 입력: * * * 출력: * * * 예제 입력: * hELLO wORLD..
-
7-1: 과제물망치기Basic 2018. 10. 25. 21:11
과제물망치기 ( str1.cpp ) 문제철수는 영희를 괴롭히는 것을 매우 좋아한다. 오늘도 철수는 영희를 어떻게 괴롭힐지 고민을 하다가, 영희가 최근에 작성하고 있던 문서가 떠올랐다. 이에 철수는 영희의 문서를 망쳐놓기로 결심한다. 바로 띄어쓰기를 모두 제거해버리는 것이다. 영희의 문서를 확인한 철수는, 띄어쓰기가 너무 많아 직접 모두 제거할 수는 없다는 것을 깨닫고 도움을 요청했다. 영희의 문서가 주어질 때, 띄어쓰기를 모두 제거하는 프로그램을 작성하시오. 입력첫째 줄에 영희의 문서가 주어진다. 영희의 문서는 한 줄 짜리 문자열이며, 문서의 길이는 100,000을 넘지 않는다. 출력문자열의 띄어쓰기를 모두 제거한 결과를 출력한다. 예제 입력Please do not touch anything예제 출력Pl..
-
6-10: 쿼드트리DFS, BFS 2018. 10. 25. 21:10
쿼드트리 (quad.cpp) 문제그림 과 같은 이진 이미지는 0 혹은 1 로 자료를 표현한다.그림(b) 는 그림(a) 를 나타내는 배열을 나타낸다. 그림(b) 의 이진 이미지를 저장하기 위해 일명 쿼드트리 구조를 사용한다.쿼드 트리는 NN 배열을 N/2 N/2 크기로 4 등분 했을 때 모두 같은 값을 가지지 않는다면, 다시 N/2 * N/2 배열에서 같은 이진 값을 가지지 않는다면 다시 .....이런 식으로 진행하다 4 등분 된 값이 모두 같은 값을 가지면 확장이 종료된다.그림(c) 는 쿼드 트리의 확장이 종료된 후의 배열이 모습이다.그림(a) 에 있는 이진 이미지를 저장하지 않고 , 그림(c) 로 부터 엔코드된 그림(d) 처럼 쿼드 트리로 이미지를 저장한다.그림(d) 에서 각 노드는 그림(c) 에 있는..
-
6-9: 목수의 미로 탈출DFS, BFS 2018. 10. 25. 21:10
목수의 미로 탈출 문제아래와 같이 이동할 수 있는 길, 그리고 이동할 수 없는 벽으로 이루어진 크기 N x M 의 지도가 주어진다. 이 때, (N-1, 0) 에서 출발하여 (0, M-1) 까지 도착하는 최단거리를 찾으려 한다. 그런데 목수는 도끼 하나를 갖고 있으며, 이 도끼를 이용하여 벽을 깨부술 수 있다. 하지만 이 도끼는 내구성이 그렇게 좋지 않기 때문에, 벽을 최대 1개밖에 깰 수 없다. 목수가 출발점에서 도착점까지 이동하기 위한 최단거리를 출력하는 프로그램을 작성하시오. 물론, 벽은 최대 1개까지 깰 수 있다. 아래 예제의 경우 ‘X’ 로 표시된 벽을 깰 경우 거리 18만에 출발점에서 도착점으로 이동할 수 있다. 입력첫째 줄에 지도의 세로 길이 N과 지도의 가로 길이 M이 주어진다. ( 1 ≤ ..