영리한 프로그래밍을 위한 알고리즘 강좌

영리한 프로그래밍을 위한 알고리즘 강좌

(26개의 수강평)

19280명의 수강생
무료
지식공유자 · 권오흠
56회 수업· 총 28시간 14분수업
평생 무제한 시청
수료증 미발급 강의
수강 난이도 입문, 초급
cth5132 프로필

pdf에 있는 Excercise 답은 없나요? cth5132 13일 전

답과 해설이 있으면 더 좋을것같은데요...

0
harrymax 프로필

pdf harrymax 3달 전

해당 강좌에 대한 pdf는 다운받지 못하는건가요 ??

0
오지혜 프로필

include 배열에 대해 궁금한점이 있습니다! 오지혜 4달 전

마지막에 k == n개가 될때는 2의 n승개의 powerSet 함수가 호출된다고 이해를 했는데요.
include 배열은 함수 밖에 선언이 되어있는데 각 함수마다 다른 값들을 가질 수 있는건가요?
혹시 제가 자바스크립트를 써서.. 언어마다 스코프가 다른건가요??

0
강지연 프로필

연결요소 강지연 6달 전

8개의 노드가 있는 그래프에서 

7개의 노드가 서로 연결되어있고 1개의 노드만 연결되어 있지 않으면 

연결요소가 1개인가요 2개인가요?

0
jbh9730 프로필

heap 정렬에서 배열 인덱스 jbh9730 9달 전

heap에서 노드 설명하실 때 항상 배열 인덱스 1부터 시작하시는데 수강생은 임의로 0이라고 생각하고 해석하면 되나요 ?

0
Dahan Jeong 프로필

Java에서의 정렬에서 정렬된 값 출력 방법 Dahan Jeong 9달 전

System.out.println(Arrays.toString(fruits)); 를 해도 주소값만 나오는데 해당 값 출력하려면 어떻게 하면 될까요 ㅠ?

1
긍정게임 프로필

MAX-HEAPIFY(A,1) 긍정게임 10달 전

MAX-HEAPIFY(A,1) 가 뭔지 모르겠습니다.

MAX-HEAPIFY 루트노드를 한번 해주면 된다는게 뭔지 모르겟습니다.

MAX-HEAPIFY를 해주는건 아는데

(A,1) 이렇게 코드 작성 되는게 그게 뭐죠?

0
SEONGMOOK LIM 프로필

Python 으로 구현해보았습니다. SEONGMOOK LIM 2019.01.19

class Maze:
    def findMazePath(self, x, y):
        if (x < 0 or y < 0 | x >= N or y >= N): #지도 범위를 넘어선곳
            return False

        elif (maze[x][y] != PATHWAY_COLOR): # White 0 #벽
            return False

        elif (x == N - 1 & y == N - 1): # 최종 목적지
            maze[x][y] = PATH_COLOR #Green 3
            return True

        else:
            maze[x][y] = PATH_COLOR #Green 3 # 계속 갈 수 있는 길인지, 막힌 길인지 파악이 안된 길. 일단 가보는 길
            if (self.findMazePath(x - 1, y) | self.findMazePath(x, y + 1) | \
                self.findMazePath(x + 1, y) | self.findMazePath(x, y - 1)):
                return True
            maze[x][y] = BLOCKED_COLOR #Red 2 $ 위의 if 구문에서 Return 받아서 가면 안되는 길 
            return False

if __name__ == '__main__':
    N = 8
    maze = [[0, 0, 0, 0, 0, 0, 0, 1],
            [0, 1, 1, 0, 1, 1, 0, 1],
            [0, 0, 0, 0, 0, 0, 0, 1],
            [0, 1, 0, 0, 1, 1, 0, 0],
            [0, 1, 1, 1, 0, 0, 1, 1],
            [0, 1, 0, 0, 0, 1, 0, 1],
            [0, 0, 0, 1, 0, 0, 0, 1],
            [0, 1, 1, 1, 0, 1, 0, 0]]

    PATHWAY_COLOR = 0 # 원래 길
    WALL_COLOR = 1 # 벽
    BLOCKED_COLOR = 2 # 이 길로 계속 가면 가다 도중에 막히는 길
    PATH_COLOR = 3 # 이 길로 계속 가면 끝까지 갈 수 있는 길

    s = Maze()
    print(maze)
    s.findMazePath(0, 0)
    print(maze)

0
킨글 프로필

printMaze()는 어떻게 만들어야 할까요? 킨글 2018.09.26

Reversion의 응용 - 미로찾기 1을 듣고 있는데요.

printMaze()라는 함수가 강의 내용 중 나오지 않아서 질문드립니다.

혹시 힌트라도 주시면 직접 구현해보려고 하는데 도움 부탁드려요

package test;

public class Recursion_Maze {
    /*
     * 현재 위치에서 출구까지 가는 경로가 있으려면
     * 1) 현재 위치가 출구이거나 혹은
     * 2) 이웃한 셀들 중 하나에서 현재 위치를 지나지 않고 출구까지 가는 경로가 있거나
     */
    private static int N=8;
    private static int maze[][] = {
            {0, 0, 0, 0, 0, 0, 0, 1},   
            {0, 1, 1, 0, 1, 1, 0, 1},
            {0, 0, 0, 1, 0, 0, 0, 1},
            {0, 1, 0, 0, 1, 1, 0, 0},
            {0, 1, 1, 1, 0, 0, 1, 1},
            {0, 1, 0, 0, 0, 1, 0, 1},
            {0, 0, 0, 1, 0, 0, 0, 1},
            {0, 1, 1, 1, 0, 1, 0, 0}
    };      
    private static final int PATHWAY_COLOUR = 0; // WHITE
    private static final int WALL_COLOUR = 1; // BLUE
    private static final int BLOCKED_COLOUR = 2; // RED
    private static final int PATH_COLOUR = 3; // GREEN

    public static void main(String[] args) {
        printMaze(); // 에러
        findMazePath(0,0);
        printMaze(); // 에러
    }
    public static boolean findMazePath(int x, int y) {
        if (x<0 || y<0 || x>=N || y>=N) // 좌표 내 유효한 범위인가를 체크
            return false;
        else if(maze[x][y] != PATHWAY_COLOUR) 
            return false;
        else if(x==N-1 && y==N-1) {
            maze[x][y] = PATH_COLOUR;
            return true;
        }else {
            maze[x][y] = PATH_COLOUR;
            if(findMazePath(x-1,y) || findMazePath(x, y+1) || findMazePath(x+1, y) || findMazePath(x, y-1)) { // 탐색하기
                return true; 
            }
            maze[x][y] = BLOCKED_COLOUR; // dead end 어떤 방향으로 가도 출구까지 가는 경로가 없다.
            return false;
        }
    }
}

1
Daniel Wiberg 프로필

동서남북 순서 Daniel Wiberg 2018.09.24

서 -> 북 ->동->남 순서 아닌가요?

0
Hoony 프로필

해당 강좌에 대한 pdf는 다운받지 못하는건가요 ?? Hoony 2018.09.14

해당 강좌에 대한 pdf는 다운받지 못하는건가요 ??

다이나믹 프로그래밍에 대한 문제 같은것들도 보고싶어서요..ㅠ

0
Hs Kim 프로필

이 강의 ppt 자료는 다운받을 수 없나요? Hs Kim 2018.07.26

이 강의 ppt 자료는 다운받을 수 없나요?

0
코알못 프로필

C언어로 quicksort 구현 해봤는데 안되네요ㅠㅜ 왜 그런걸까요? 코알못 2018.07.16

'''#include

int quicksort(int A[], int p, int q);

int partition(int A[], int p, int q);

int main()

{

int num[100]={0,}, n;

scanf("%d", &n);

for(int i=0; i<n; i++) scanf("%d", &num[i]);

quicksort(num, 0, n-1);

for(int i=0; i<n; i++) printf("%d", num[i]);

}

int quicksort(int A[], int p, int q)

{

if(p<q){

int r;

r=partition(A, p, q);

quicksort(A, p, r-1);

quicksort(A, r+1, q);

}

}

int partition(int A[], int p, int q)

{

int i=p-1;

for(int j=p; j<q-1; j++){

if(A[j]<A[q]){

i++;

int tmp=A[i];

A[i]=A[j];

A[j]=tmp;

}

}

int tmp=A[i+1];

A[i+1]=A[q];

A[q]=tmp;

}'''

0
인그니야 프로필

10분 35초에 나오는 식이 잘못된 것 같아요. 인그니야 2018.07.03

영상에서 나오는

f[n] = f[n-1]+f[n-2];

이 아니라

f[i] = f[i-1]+f[i-2];

이 식이 맞는 것 같은데 아닌가요?

0
Soojin Lee 프로필

넘 재밌었어요.. Soojin Lee 2018.06.04

프로그래머라면 누구나 미로찾기를 해봤죠

아님말고.. 라니 ㅋㅋㅋ 넘 웃겻습니다 ㅋㅋ

강의도 너무 유익해요 !

0
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스