본문 바로가기

전체보기141

[4] [Class 3] - 백준 9019 DSLR www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 처음에는 rotate함수 이용해서 string을 돌려서 짰는데 그러다보니 시간 초과가 나는 것이다. int로 바꿔 계산하니 올바른 결과가 나왔다. #include using namespace std; bool visited[10001]; int main(){ ios_base :: sync_with_stdio(false); cin.tie(NULL); int T; cin >> T; queue q; wh.. 2021. 1. 22.
[3] [Class 3] - 백준 7662 이중 우선순위 큐 www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 양쪽 방향으로 큐를 만족시키면서 중복된 값을 넣을 수 있어야 해서 깔끔하게 multiset을 사용했다. multiset에 대한 설명은 다음 게시글에 자세히 나와 있습니다. // 이중 우선순위 큐 // multiset 이용해서 해결 #include typedef long long ll; using namespace std; int main(){ ios_base :: sync_with_stdio(false); .. 2021. 1. 22.
[2] [Class 3] - 백준 1697 숨바꼭질 www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 해당 지점으로 이동하는 규칙이 있고 여러 방법중 가장 빠른 방법의 횟수를 구하는 것이 목표인데요 모든 케이스를 조사하는 것 보단, 가장 빨리 결과가 등장하는 경우를 찾는것이 가장 적합해 보입니다. 이럴 땐 역시 BFS만한 것이 없다고 생각합니다. 하나 찾으면 while문 벗어나서 출력하게끔 구성하였습니다. // BFS #include using namespace std; bool vi.. 2021. 1. 21.
[1] [Class 3] - 백준 5525 IOIOI www.acmicpc.net/problem/5525 5525번: IOIOI 첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000) www.acmicpc.net 문자열 내에 특정 단어가 몇번 반복되냐를 계산하는 것이 목적인 문제입니다. 제가 푼 방식은 이렇습니다. 찾아야 하는 단어가 I와 O의 반복이여서 한번 패턴이 매칭이 되면, 그 다음 앞의 2개만 더 IO면 되기 때문에 매칭에 성공할 시, 매칭된 단어의 갯수를 2를 줄이고 현재 위치에서 계속 판단하는 식으로 해서 시간 복잡도는 O(n) 으로 구성하였습니다. // 문자열 비교 #include using namespace std; int mai.. 2021. 1. 21.