목록문제 (388)
sm 기술 블로그
N = int(input()) def Hanoi(A, B, C, N): # A:1 B:2 C:3 if N == 1: print("{0} {1}".format(A, C)) # 처음 print라고 정의함 return Hanoi(A, C, B, N-1) print("{0} {1}".format(A, C)) # 마지막 print 라고 정의함 Hanoi(B, A, C, N-1) print((2**N)-1) Hanoi(1, 2, 3, N) 먼저 이동 순서를 한번 보자. 하노이탑 n = 3 일때 위와 같이 이동한다. 어떻게 이동 되는지 이해가 됐는가? 그럼 설명에 들어간다. 재귀 함수를 사용하여 하노이탑 문제를 풀어야한다. 기본적으로 총 움직이는 횟수는 2의 들어온 값의 제곱 - 1 이다. => (( 2**n )-1..
let input = require("fs").readFileSync("ex.txt").toString().split(" "); let n = parseInt(input[0]); const draw_star = (n) => { if (n === 1) { let star = []; star.push("*"); return star; } let stars = draw_star(parseInt(n / 3)); let result = []; let line = ""; let draw = ""; for (let first of stars) { for (let i = 0; i < 3; i++) { draw += first; } result.push(draw); draw = ""; } draw = ""; for (l..
좀 어려웠다.. 처음에 n = int(input()) result = "" # 1. 함수정의 def star(x, y, n): global result if(x // n) % 3 == 1 and (y // n) % 3 == 1: # x, y를 현재 n값에 나누고 그 값의 3의 나머지가 1일 때 result += " " elif n == 1: # 위 조건에 만족하지 않고 n이 1/3 까지 오면 별 출력 result += "*" else: star(x, y, n//3) # n을 3으로 나누고, 함수 재호출 # 2. 계산 시작 for x in range(n): for y in range(n): star(x, y, n) result += "\n" print(result) 을 이용하였다. 행,열이 3의 나머지가 ..
-문제1 class Solution { public int solution(String s) { int answer = 0; answer = Integer.parseInt(s); return answer; } } -문제2 import java.util.ArrayList; class Solution { public String solution(int a, int b) { String answer = ""; int total = 0; ArrayList day = new ArrayList(); day.add("THU");//0 day.add("FRI"); day.add("SAT"); day.add("SUN"); day.add("MON"); day.add("TUE"); day.add("WED");//6 swit..