티스토리 뷰
4779번: 칸토어 집합
칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고,
www.acmicpc.net
문제풀이
문자열을 3등분해서 가운데 문자열에 해당하는 부분은 공백으로 바꾼다.
end - start가 1이 되면 종료해주면 된다.
C++ 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <string> | |
#include <cmath> | |
using namespace std; | |
string s; | |
void go(int start, int end) | |
{ | |
if (end - start == 1) return; | |
int k = (end - start) / 3; | |
for (int i = start + k; i < end - k; i++) { | |
s[i] = ' '; | |
} | |
go(start, start + k); | |
go(end - k, end); | |
} | |
int main() | |
{ | |
ios::sync_with_stdio(false); | |
cin.tie(NULL); | |
cout.tie(NULL); | |
int n; | |
while (cin >> n) { | |
int size = pow(3, n); | |
s.clear(); | |
s.append(size, '-'); | |
go(0, size); | |
cout << s << '\n'; | |
} | |
return 0; | |
} |
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ 2470] 두 용액 C++ (0) | 2021.07.22 |
---|---|
[BOJ 14921] 용액 합성하기 C++ (0) | 2021.07.22 |
[BOJ 4256] 트리 C++/Kotlin (0) | 2021.07.20 |
[BOJ 2263] 트리의 순회 C++/Kotlin (0) | 2021.07.20 |
[BOJ 1074] Z C++ (0) | 2021.07.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BOJ
- 백준
- 투 포인터
- 자바
- 그래프
- Kotlin
- 트리
- dfs
- 이분 탐색
- algorithm
- 큐
- C++
- 분할 정복
- 프로그래머스
- BFS
- 브루트포스
- Java
- 배열
- SW Expert Academy
- programmers
- 스택
- 재귀
- 구현
- 정렬
- 두 포인터
- Two Pointer
- 문자열
- SWEA
- 위상 정렬
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함