알고리즘/문자열

알고리즘/문자열

[BOJ] 백준 13417 - 카드 문자열 풀이

1. 문제 https://www.acmicpc.net/problem/13417 13417번: 카드 문자열 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처 www.acmicpc.net 2. 풀이 실버 3의 문자열 구현 문제이다. 이 문제의 핵심은 문제에도 설명이 나와 있는 "만들 수 있는 카드 문자열 중 사전 순으로 가장 빠른 문자열을 출력하는 프로그램을 작성"이라는 문구이다. 먼저 입력으로 주어지는 테스트 케이스만큼 반복문을 구성하고 String 배열로 입력을 받는다. (12줄) 문제에서 첫 번째 카드는 기본으로 맨 왼쪽의 카드를 놓는다고 했으므로 미리 선언했던 버..

알고리즘/문자열

[BOJ] 백준 4889 - 안정적인 문자열 풀이

1. 문제 https://www.acmicpc.net/problem/4889 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net 2. 풀이 백준 실버 1 문자열에 해당하는 문제이다. 백준 문제에서 괄호를 몇 번 풀어봐서 그런지 보자마자 스택을 이용하여 풀어야 한다는 것을 알았다. (물론 금방 풀지는 못했지만...) 문제의 핵심은 입력으로 주어지는 문자열을 안정적인 문자열로 바꾸기 위한 최소한의 연산 횟수이다. 우선 Character로 스택을 만들어준다.(9번 줄) 입력의 횟수가 주어지지 않고 '-'가 마지막 ..

알고리즘/문자열

[BOJ] 백준 17609 - 회문 풀이

1. 문제 https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 2. 풀이 백준 문자열 파트 골드 5의 문제이다. 처음 문제를 보고 문제가 쉽게 느껴져서 입력으로 주어진 문자열을 StringBuffer에 넣고 reverse() 함수를 통해 돌린 후 회문이면 "0"을 회문이 아니라면 문자를 하나씩 제거하면서 회문인지 체크하는 방식으로 풀었다. 그 결과 당연히 시간 초과가 났다... (최악의 경우 100,000자리가 나온다면 반복문을 10만번 돌아야 한다...) 그 후 Two Poi..

알고리즘/문자열

[BOJ] 백준 1755 - 숫자놀이 풀이

1. 문제 https://www.acmicpc.net/problem/1755 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 2. 풀이 문자열 문제이다. 우선 0부터 9까지의 수를 영어로 배열에 저장하고(numArr), 입력으로 주어지는 M부터 N까지 반복문을 돈다. 반복문을 돌 때 반복문의 인덱스를 문자열화 시키고, 그 문자열을 하나씩 또 탐색하면서 아까 저장해둔 numArr의 인덱스에 맞는 값을 가져와서 영문화시키고, list에 넣는다. 그 후 리스트를..

알고리즘/문자열

[BOJ] 백준 1251 - 단어 나누기 풀이

1. 문제 https://www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 2. 풀이 문자열 관련 문제이고 브루트포스로 해결하였다. 단어를 세 부분으로 나누어야 하기에, 나누는 포인트(/) 2개를 브루트포스 알고리즘으로 나눌 수 있는 모든 문자열을 구하여 각각 뒤집고 합친 후 리스트에 추가한다. 그 후 Collections.sort()로 정렬하면 기본적으로 오름차순으로 정렬되기에, 리스트의 첫 번째 인덱스에 들어있는 문자열이 사전순으로 가장 앞선 문자열이 된다...

알고리즘/문자열

[BOJ] 백준 1543 - 문서 검색 풀이

1. 문제 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 2. 풀이 간단한 문자열 문제이다. 첫 번째 줄 입력을 input으로 받고 두 번째 줄 입력을 search로 받는다. 그 후 input안에 search가 있으면 replace 함수를 이용하여 다른 문자로 교체한다. 이때 문제에서 주어졌듯이 입력으로는 알파벳 소문자와 공백이 주어지므로 이를 제외한 문자 아무거나로 교체한다. 그리고 input을 인덱스 하나씩 탐색하면서 교체한 문자가 있으면 cn..

송승현(SSH)
'알고리즘/문자열' 카테고리의 글 목록