차곡차곡

[BOJ/Python, Java] 백준 4779번 - 칸토어 집합 본문

CS/Algorithm

[BOJ/Python, Java] 백준 4779번 - 칸토어 집합

sohy 2023. 7. 31. 00:30

백준 #4779 칸토어 집합

 

4779번: 칸토어 집합

칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고,

www.acmicpc.net

 

Python ver.

while True:
  try:
    n = int(input())
    for i in range(int(n)+1):
      if i == 0:
        str = "-"
      else:
        str = str + " " * len(str) + str
    print(str)
  except EOFError:
    break

Java ver.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = "";
		int n;
		
		while (sc.hasNext()) {
			n = sc.nextInt();
			for (int i=0; i < n+1; i++) {
				if (i == 0) {
					str = "-";
				}
				else {
					str = str + " ".repeat(str.length()) + str;
				}
			}
			System.out.println(str);
		}

	}

}

규칙을 이해하면 쉽다! n번째 결과는 n-1번째 결과를 이어붙인 것과 같다. n-1번째 결과 사이에 n-1번째 결과의 길이만큼 공백만 넣어주면 된다. 즉, n번째 결과 = n-1번째 결과 + n-1번째 결과 길이만큼의 공백 + n-1번째 결과

 

규칙만 알아내면 금방 풀 수 있지만 처음에 규칙이 잘 안 보여서 애먹었다 ㅠ

 


 

참고

  • 파이썬 입력이 끝날 때까지 받아오는 방법
 

파이썬 입력이 끝날 때까지 받아오는 방법 [BOJ 10951] A+B - 4 (파이썬 python EOF EOFError)

파이썬 python EOF [BOJ 10951] BOJ 10951번: A+B - 4 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 파이썬을 사용하여 입력이 끝날 때까지 받아오는 방법

pchild.tistory.com

 

Comments