목록분류 전체보기 (31)
Hello World!
문제링크: 백준/BOJ https://www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 비슷한 문제를 학교 과제로 풀게 되었는데 처음에는 회의가 시작하는 시간을 우선순위로 두고 정렬해서 이중 for문으로 풀려 했기 때문에 당연히 TLE가 떴다. 결국 이 문제는 나 혼자 힘으로 풀지 못하고 회의가 끝나는 시간을 오름차순으로 정렬해야 한다는 힌트를 보고 서야 풀 수 있었다. vector에 pair를 넣고 algorithm 헤더에 sort 함수를 이용해서 정렬하면 자동으로 first값을 우선으로 정렬하고, 만약 first값이 같을 경우 second값을 기준으로 정렬을 해주니 아주 편..
문제링크: 백준/BOJ https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다. A의 앞에 아무 알파벳이나 추가한다. A의 뒤에 아무 알파벳이나 추가한다. 이때, A와 B의 길이가 같으 www.acmicpc.net 처음에는 b에 맞춰서 a를 하나하나 만들어 봐야 하나 생각해서 문제가 너무 꼴 보기 싫었었다. 하지만 문제가 그리디..
문제 링크: 백준/BOJ https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 문제 상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다. 가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다. 사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하 www.acmicpc.net 2주 전에 처음 풀었을 때는 무한 맞왜틀하다가 다시 풀어보니까 한번에 통과해서 기분 좋았던 문제다. 사실 생각..
문제 링크: 백준/BOJ https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 주어지며, 같은 버튼이 여러 번 주어지는 경우는 없다. www.acmicpc.net 처음에 시도했던 방법은 나름 꼼수를 부린 방법이었다. 1. 크기 10짜리 배열에 고장난 버튼을 저장해두고 채널 n을 문자열로 바꾼다. 2. string tmp="";를 선언한 후, n의 앞에서부터 해당 숫자 버튼이 있으면 바로 tmp에 추가해주고 고장난 버튼이면 다시 0부터 9까지 for문을 돌려서 ..
문제 링크 : 백준/BOJ https://www.acmicpc.net/problem/1406 1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 www.acmicpc.net 이게 스택으로 풀면 o(n+m)에 풀리는 문제임을 백준 인강을 보고서야 알았다. 스택은 비교적 간단한 자료구조이지..
문제링크 : 백준/BOJ https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 www.acmicpc.net 예전에 풀었던 문제인데 스택을 이용해서 새로 풀어 보았다. 굳이 스택을 쓸 필요성은 못 느꼈지만, 스택의 L..