본문 바로가기

Algorithm/String

(93)
(C++) - 백준(BOJ) 21964 : 선린인터넷고등학교 교가 https://www.acmicpc.net/problem/21964 21964번: 선린인터넷고등학교 교가 알파벳 대문자, 알파벳 소문자, 쉼표, 마침표의 아스키 코드는 각각 65-90, 97-122, 44, 46이다. www.acmicpc.net 간단한 문자열 slicing 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자열의 길이 n, 문자열 s를 선언 후 입력받습니다. 📔 정답출력 마지막 5글자를 substr함수를 이용해 출력합니다. 📕 Code #include using namespace std; int n; string s; int main(){ cin >> n >> s; cout
(C++) - 백준(BOJ) 25372 : 성택이의 은밀한 비밀번호 https://www.acmicpc.net/problem/25372 25372번: 성택이의 은밀한 비밀번호 부산사이버대학교 학생 성택이는 엄마의 의뢰를 받아 주어진 문자열이 현관문 비밀번호에 사용 가능한지 알아내야 한다. 성택이는 공부해야 하므로 우리가 도와주자! 사용할 수 있는 비밀번호 www.acmicpc.net 간단한 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case 수 n, 문자열의 크기를 저장할 sz, 문자열 s를 선언 후 입력받습니다. 📔 정답출력 조건에 따라 문자열 크기가 6에서 9이면 yes를 출력합니다. 📕 Code #include using namespace std; int n, sz; string s; int main(){ cin >> n; while(n--){ c..
(C++) - 백준(BOJ) 15000 : CAPS https://www.acmicpc.net/problem/15000 15000번: CAPS Earth is under attack! Messages need to be sent to the Earth Defense Force (EDF) that makes clear that the situation is dire. The EDF’s strongest forces consist of mechs (huge bipedal robots) that are piloted by Japanese teenagers. To make sure that the www.acmicpc.net 문자열 속성을 이해해 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자열 s를 선언 후 입력받습니다. 📔 풀이과정 각 문자에 대해 l..
(C++) - 백준(BOJ) 9324 : 진짜 메시지 https://www.acmicpc.net/problem/9324 9324번: 진짜 메시지 스파이들은 사령부와 통신하기 위해서 SMTP(비밀 메시지 전송 프로토콜)를 사용해 비밀 회선으로 전자 메시지를 보낸다. 메시지가 적들에 의해 조작되어 보내진 것이 아닌 진짜 메시지라는 것 www.acmicpc.net 간단한 문자열 이용 구현문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case수 t, 나온 문자를 확인할 일차원배열 ck, 받은 message msg, 원래 message originMsg를 선언 후 적절히 입력받습니다. 📔 풀이과정 원래 message를 역추적해야합니다. 전달받은 message는 algorithm이 적용된 결과물로 msg에 저장되어 있습니다. 하지만 우리는 이것을 원문처럼 생..
(C++) - 백준(BOJ) 5555 : 반지 https://www.acmicpc.net/problem/5555 5555번: 반지 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 www.acmicpc.net 특정 문자열을 찾는 find함수를 사용해 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 찾을 문자열 stringToFind, 반지에 써있는 문구 ringString, 반지 개수 n, 정답 출력할 변수 cnt를 선언한 후 적절히 입력받습니다. 📔 풀이과정 제한이 적으므로 다양한 풀이가 있습니다. brute force로도 풀 수 있지만 std::find함수를 사용하면 간단히 특정 문자열이 있는지 O(N)으로..
(C++) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문자열을 다루는 문제였습니다. 📕 풀이방법 📔 풀이과정 1. 자르는 단위를 1 ~ s.size()까지 차례대로 정해서 확인합니다. 1-1. s의 처음 0번 index부터 시작해서 s.size() - 1까지 연속된 단위들의 처음을 string 변수 tmp에 저장합니다. 1-2. 이후 tmp가 연속되는 문자열의 개수를 세줍니다. 연속된 부분이 끝났다면 압축결..
(C++) - 백준(BOJ) 1755번 : 숫자놀이 https://www.acmicpc.net/problem/1755 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 문자열과 정렬문제였습니다. 📕 풀이방법 📔 입력 및 초기화 m, n을 입력받습니다. 숫자를 문자열로 변환시킨 값을 key, 숫자를 value로 한 map 변수 numMap을 선언합니다. 📔 풀이과정 i는 m ~ n까지 loop를 돌며 1씩 증가합니다. 한 자리 수일 때 i를 문자열로 변환시켜 map에 넣습니다. 두 자리 수일 때 i / 10 과..
(C++) - 백준(BOJ) 15927번 : 회문은 회문아니야!! https://www.acmicpc.net/problem/15927 15927번: 회문은 회문아니야!! 팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을 www.acmicpc.net 문자열 다루는 문제였습니다. 📕 풀이방법 너무 깊게 생각하면 안됩니다. 약간의 직관이 필요합니다. 📔 입력 및 초기화 string 형 변수 s에 문자열을 입력받습니다. 📔 풀이과정 1. 모든 문자가 같다면 -1이 답입니다. 2. 모두 같은 문자인 것을 제외한 모든 펠린드롬은 양 옆에 있는 문자중 하나의 문자를 제거하면 펠린드롬이 아니게 됩니다. 따라서 펠린드롬인..