목록문자열 (69)
알고리즘 모음(C++)

문제 링크입니다. https://www.acmicpc.net/problem/18766 18766번: 카드 바꿔치기 범고래와 돌고래는 카드놀이를 좋아한다. 각 카드는 빨강 (R), 노랑 (Y), 파랑 (B) 중 하나의 색으로 칠해져 있고 0-9 사이의 숫자가 적혀있다. 색과 숫자가 같은 카드가 여러 장 있을 수도 있다. 최 www.acmicpc.net 정렬을 이용해 푸는 문제입니다. 돌고래가 카드를 바꿔치기 했는지의 여부를 판단하는 문제입니다. 2개의 문자열 배열이 주어지는데, 두 문자열 배열이 일치하다면 -> 바꿔치기 X 두 문자열 배열이 다르다면 -> 바꿔치기 0 따라서 두 문자열 배열을 같게 만들어줘야합니다. 각 문자열 배열을 정렬을 시킨뒤, 전부 비교해주면 됩니다. 자세한 것은 코드를 참고해주세요 ..

문제 링크입니다. https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net Deque과 문자열을 이용해 풀 수 있는 문제였습니다 문제를 풀기 위해서는 구현해야할 것이 3가지가 있습니다. 1. 문자열이 주어졌을때, 숫자를 구하기 2. 함수 P 실행하기 3. 실행한 결과 출력하기 1. 문자열이 주어졌을때, 숫자구하기 string num; for (int i = 0; i = '0' && number[i] 0) { Number.push_back(s..

문제 링크입니다. https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문자열과 그리디 알고리즘을 사용하여 푸는 문제였습니다. 크게 2가지의 과정을 통해 문제를 풀면 됩니다. 1. 문자열을 숫자와 수식으로 변경해 저장하기 2. 숫자를 뺄 경우 뺄 수 있는 최댓값을 구하기 1. 문자열을 숫자와 수식으로 변경하기 void get_number() { string now_number; for (int i = 0; i < formula.size(); i..

문제 링크입니다. https://www.acmicpc.net/problem/5988 5988번: 홀수일까 짝수일까 짝이 없는 경재는 매일 홀로 있다보니 홀수를 판별할 수 있는 능력이 생겼다. 창식이는 경재의 말이 사실인지 그 능력을 시험해보려 한다. 창식이의 의심이 끝이 없을 것 같아 N개만 확인하기 www.acmicpc.net 간단한 문제였지만, string을 사용해야하는 문제였습니다. 수의 범위가 최대 10^60임으로 int 나 long long 으로 값을 받지 못합니다. 저는 문자열로 값을 받아 홀수, 짝수를 판별했습니다. 1. 홀짝 판별하기 void solve() { for (int i = 0; i < N; i++) { int check = num[i][num[i].size() - 1] - '0'..

문제 링크입니다. https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net map과 string을 이용하면 간단하게 풀 수 있는 문제였습니다. N과 M의 범위가 100,000 이기에 pair를 사용해 다중 for 문을 사용하면 시간 초과가 생길 수 있습니다. 따라서 map을 이용해, 사이트 주소와 비밀번호를 저장한 뒤, 해당 사이트의 비밀번호만 출력할 수 있도록 해야합니다. 이를 생각하고 풀면 간단한 문제였습니다. 자세한 ..

문제 링크입니다. https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 문자열을 이용한 문제였습니다. "IOI" 를 확인하는 과정에서 다중 for문을 사용한다면 시간초과가 생기기에 다른 접근이 필요한 문제였습니다. 저같은 경우에는 IOI가 연속적으로 몇번 나오는지를 확인하는 방법으로 풀었습니다. 예제입력을 통해서 확인해보겠습니다. OOIOIOIOIIOII 해당 문자열이 주어졌을때, ..

문제 링크입니다. https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net Stack을 사용한 문제입니다. 괄호가 정확히 사용되었는지를 물어보는 문제였습니다. Stack을 사용했습니다. '(' or '[' 과 같이 여는 괄호는 stack에 저장한 뒤, ')' or ']'와 같이 닫는 괄호가 입력되면 stack의 top을 확인해 쌍이 맞는지를 확인합니다. 쌍이 전부 맞았으며, stack에 남아있는 수가 없을 경우 yes를 출력하고 그 이외의..

문제 링크입니다 https://www.acmicpc.net/problem/1039 1039번: 교환 첫째 줄에 정수 N과 K가 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, K는 10보다 작거나 같은 자연수이다. www.acmicpc.net 문자열을 사용한 BFS 문제였습니다 N을 입력받아서 K번 수를 바꾼뒤 최댓값을 출력하는 문제입니다. N을 자릿수를 바꿔야하기에 string으로 선언해서 문자열로 사용했습니다. 문제 접근 방법 1. 수의 위치를 바꿀 수 없을 경우를 찾아서 -1를 return 해준다. 2. 수를 K번만큼 바꾼 뒤, 최댓값을 찾아서 출력해준다. 문제 접근 방법 - 1번 if (N.size() == 1 || (N.size() == 2 && stoi(N) % 10 == 0))..

문제 링크입니다 https://www.acmicpc.net/problem/15644 15644번: 구슬 탈출 3 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net https://junseok.tistory.com/60 백준 13460 - 구슬 탈출 2(C++, 복습) 문제 링크입니다 https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음..