본문 바로가기

Algorithm

(2139)
(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) 16171 : 나는 친구가 적다 (Small) https://www.acmicpc.net/problem/16171 16171번: 나는 친구가 적다 (Small) 첫 번째 줄에는 알파벳 소문자, 대문자, 숫자로 이루어진 문자열 S가 주어진다. (1 ≤ |S| ≤ 100) 두 번째 줄에는 성민이가 찾고자 하는 알파벳 소문자, 대문자로만 이루어진 키워드 문자열 K가 주 www.acmicpc.net 구현, 문자열 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자열 s, k를 선언 후 입력받습니다. '0' ~ '9'까지 문자열 제거를 위한 map 변수 filteringMap을 선언 후 값을 저장해줍니다. 📔 풀이과정 '0' ~ '9'까지의 문자를 제거해 원래 문자열을 반환하는 함수 getFilteredString을 수행합니다. 수행 뒤 반환값은 s에 다시 ..
(C++) - 백준(BOJ) 24039 : 2021은 무엇이 특별할까? https://www.acmicpc.net/problem/24039 24039번: 2021은 무엇이 특별할까? 백준 온라인 저지의 송년대회 Good Bye BOJ, 2021!의 개최일은 2021년 12월 31일이다. 원이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2021이 무언가 특별하다는 사실을 깨달았다. 그렇 www.acmicpc.net 모든 경우의 수를 탐색하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. 소수들을 저장할 vector prime, 소수인지 판별할 일차원 배열 ck, n, 정답을 출력할 ans를 선언 후 입력받습니다. 2. 에라토스테네스의 체 원리를 수행해서 소수인지 판별한 뒤 소수들을 prime에 저장해줍니다. 📔 풀이과정 1. prime의 ..
(C++) - 백준(BOJ) 11068 : 회문인 수 https://www.acmicpc.net/problem/11068 11068번: 회문인 수 어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력 www.acmicpc.net 모든 경우의 수를 확인하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case t, 10진수 num을 선언 후 매 t마다 num에 입력받습니다. 📔 풀이과정 정답을 출력할 지역변수 isValid를 선언 후 0으로 초기화합니다. b진법의 범위가 2 ~ 64이므로 for loop를 해당 범위만큼 수행합니다. 1. b진법으로 표현된 vector를 반환하는 ..
(C++) - 백준(BOJ) 14582 : 오늘도 졌다 https://www.acmicpc.net/problem/14582 14582번: 오늘도 졌다 첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다. 두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 www.acmicpc.net 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 재미니스의 점수 jeminis, 스타트링크 팀의 점수 startlink, 역전패 현황 stat, 매 회마다 점수를 저장할 curJScore, curSScore를 선언 후 회당 점수를 입력받습니다. 📔 풀이과정 매 회마다 상황을 판별하기 위해 for loop를 수행합니다. 1. 매회초의 jeminis의 점수를 curJScore에 더..
(C++) - 백준(BOJ) 16212 : 정열적인 정렬 https://www.acmicpc.net/problem/16212 16212번: 정열적인 정렬 형준이는 수열을 하나 가지고 있다. 형준이는 수열을 정열적으로 정렬해보려 한다. 과연, 정렬할 수 있을까? www.acmicpc.net stl sort함수를 사용해보는 정렬 문제였습니다. 📕 풀이방법 https://www.cplusplus.com/reference/algorithm/sort/ sort - C++ Reference custom (2)template void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); www.cplusplus.com stl sort함수의 시간복잡도는 nlog(n)입니다. 시간복잡도가 이를 ..
(C++) - 백준(BOJ) 4659 : 비밀번호 발음하기 https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 문제에 나온 조건대로 구현하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 비밀번호 문자열 s, 모음을 저장하는 map vowelMap을 선언해 입력받습니다. 📔 풀이과정 조건 1,2,3을 확인하는 condition함수를 실행합니다. * 조건 2를 수행할 때 자음이 나온다면 세었던 모음개수를 0으로 초기화해줘야하며 반대의 경우도 마찬가지입니다. 조건여부에 따라 정답 문자열을 반환하는 get..
(C++) - 백준(BOJ) 24883 : 자동완성 https://www.acmicpc.net/problem/24883 24883번: 자동완성 D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외부 개발자들을 지원 www.acmicpc.net 간단한 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자 c를 선언 후 입력받습니다. 📔 정답출력 형식에 맞게 출력해줍니다. 📕 Code #include using namespace std; char c; int main(){ cin >> c; if(c == 'N' || c == 'n') cout