c언어로 알고리즘퍼즐68 (프리렉) 풀기 Q57 수건 돌리기의 총 달린 거리
[문제] n 명의 사람들이 원형으로 앉아 수건돌리기 놀이를 한다. (술래까지 포함하면 총 n + 1 명이다)편의상 (맨 처음) 술래는 0번이라고 하고, 나머지 사람들은 1 ~ n번이라고 한다.게임 시작: [1, 2, 3, 4, 5, 6, ..., n - 1, n] // 술래 = 01) 게임을 시작할 때 0번은 1번 뒤에 수건을 놓는다. 그리고 시계방향으로 1바퀴를 돈다. 1바퀴 둘레의 길이를 n이라고 하면 0번이 뛴 거리는 n이다.[0, 2, 3, 4, 5, 6, ..., n - 1, n] // 술래 = 12) 이제 1번이 술래가 된다. 1번은 2 ~ n 중에서 놓고 싶은 위치에 수건을 놓을 수 있다. 만약에 5번 뒤에 수건을 놓았다면[0, 2, 3, 4, 1, 6, ..., n - 1, n] // 술래..
c언어로 알고리즘퍼즐68 (프리렉) 풀기 Q55 사다리 타기의 가로 선 (두번째 방법)
[문제] 7개의 세로 선이 있고, 여기에 가로 선들을 그어 사다리 타기를 만든다고 하자.윗 숫자는 1, 2, 3, 4, 5, 6, 7 로 고정한다.가로 선을 10개 그어서 만들 수 있는 패턴(아랫 숫자)의 가짓수는?[예시1] 가로 선 10개를 그어서 나오는 패턴 중 1가지단, 10개를 그어서 만들 수 있는 패턴이라고 하더라도, 그 보다 적은 수로도 만들 수 있는 패턴이라면 제외하기로 한다.예를 들어 아래 그림의 패턴은 선 2개만으로도 구현할 수 있으므로 제외한다. [알고리즘] 책에서 소개한 방법으로 상당히 멋진 풀이 방법이다.n개의 세로 선이 있고, 어떤 패턴에 대해서 최소 가로선으로 사다리를 만들었다고 하자.여기에 세로 선 1개를 추가로 넣는다. 추가로 넣는 것은 n + 1가지 방법이 가능하다.예를 ..
c언어로 알고리즘퍼즐68 (프리렉) 풀기 Q55 사다리 타기의 가로 선 (첫번째 방법)
[문제] 7개의 세로 선이 있고, 여기에 가로 선들을 그어 사다리 타기를 만든다고 하자.윗 숫자는 1, 2, 3, 4, 5, 6, 7 로 고정한다.가로 선을 10개 그어서 만들 수 있는 패턴(아랫 숫자)의 가짓수는?[예시1] 가로 선 10개를 그어서 나오는 패턴 중 1가지단, 10개를 그어서 만들 수 있는 패턴이라고 하더라도, 그 보다 적은 수로도 만들 수 있는 패턴이라면 제외하기로 한다.예를 들어 아래 그림의 패턴은 선 2개만으로도 구현할 수 있으므로 제외한다. [알고리즘]간단하게 n = 4인 경우에 대해서 먼저 살펴보기로 한다.1) line = 0개인 경우: 패턴은 1234이다.arr = { 1234 }2) line = 1개인 경우 : line은 총 3군데에 그릴 수 있고 가능한 패턴은 2134, ..