일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- c프로그래밍
- Algorithm
- 혼공씨
- 혼자공부하는C언어
- r
- 초보
- 모두를위한 R데이터분석
- 코딩연습
- 빅데이터
- 대학교재풀이
- PrimePath
- 코틀린
- 데이터처리
- 기술
- 빅데이터입문
- Python
- C언어
- 연습문제
- 모두를위한R데이터분석입문
- c++
- IT
- 혼공C
- 코딩테스트
- 대학교재
- 문제해결
- 알고리즘
- 코딩
- c언어문제풀이
- 소수경로
- 도전실전예제
- Today
- Total
목록IT/알고리즘 (8)
Jupitor's Blog
Write a program that solves the following problem: Three missionaries and three cannibals come to a river and find a boat that holds two people. Everyone must get across the river to continue on the journey. However, if the cannibals ever outnumber the missionaries on either bank, the missionaries will be eaten. Find a series of crossings that will get everyone safely to the other side of the ri..
You have two jugs: a 4-gallon jug and a 3-gallon jug. Neither of the jugs have markings on them. There is a pump that can be used to fill the jugs with water. How can you get exactly two gallons of water in the 4-gallon jug? 당신한테 물통 2개가 있는데, 4갤런짜리랑 3갤런짜리다. 2개 다 어떤 마킹같은건 안되있다. 옆에는 물통에 물을 가득 채울 수 있는 펌프가 있다. 4갤런짜리 물통에 2리터를 담을 수 있는가? 바로 다음 문제는 Generalize the problem above so that the parameters to y..
def isHigherOperator(x : str, y : str) -> bool: if x not in "+-/*" or y not in "+-/*": raise NotOperatorException("isHigherOperator : parameter not operator") if x in "*/" and y in "+-" : return True else: return Falseclass NotOperatorException(Exception): passclass InvalidExpr(Exception): passdef isInt(x) -> bool: try: int(x) return True e..
class Stack: def __init__(self): self.items = [] def is_empty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[len(self.items)-1] def size(self): return len(self.items)class Queue: def __init__(self): self.items = [] def is_..
from BasicDataStructure import Stackimport turtleimport mathdef draw_spiral(my_turtle, line_len): if line_len > 0: my_turtle.forward(line_len) my_turtle.right(90) draw_spiral(my_turtle, line_len - 5) def tree(branch_len, t): if branch_len > 5: t.forward(branch_len) t.right(20) tree(branch_len - 10, t) t.left(40) tree(branch_len - 10,t..
킹제 사용언어 : python 아 nhn 들어가고 싶다! 어? 근데 c,c++, python만 된다네 이런 젠장 ㅋㅋ ----------------------------------------------------------------------------------------------------------------------------------- 수정된 코드. 역시 파이썬은 재미있다. ----------------------------------------------------------------------------------------------------------------------------------- 실제 시험에서 c, c++, java만 되니까 c++로 해보았다. 확실히 파이썬보다..
저번 포스트에서 정확한 BFS방법은 아니지만 그와 흡사한 제가 혼자 생각한 알고리즘으로 PrimePath 문제를 풀어보았는데요. 굉장히 느렸고, Dijkstra 알고리즘이 궁금해서 이 알고리즘으로 한번 해볼까, 싶더군요. 결과를 먼저 말씀드리자면 제가 독자적으로 만들어낸 알고리즘은 Trash(...) 였습니다. 시간이 얼마나 걸렸는지를 먼저 보시죠. 위에가 Dijkstra 알고리즘, 아래가 저의 알고리즘을 이용한 결과입니다. 둘다 최단 경로를 찾아냈지만 시간 차이가 엄청납니다. Dijkstra는 139ms, 제 건 16252ms... 100배 이상이 차이납니다 =_=; Dijkstra는 유명한 알고리즘으로 알려져 있고 많은 응용이 된다고 합니다. 자세한 설명은 검색하면 정말 많이 나옵니다. (wikipe..
알고리즘 문제 중에 이런 문제가 있습니다. 특정한 4자리 숫자 2개 a, b가 있습니다. 숫자 a의 한 자리 숫자만을 변경해서 b를 만들되, 이 때 거쳐가는 숫자들은 모두 소수여야 합니다. 몇 번을 거쳐야만 숫자 b를 만들 수 있는지 구하는 문제입니다. 예를들면, 1033 에서 8179 로 바꾸는 경로를 생각해봅시다. 1033 1733 3733 3739 3779 8779 8179 이렇게 여섯 단계를 거쳐서 8179로 만들 수 있겠죠. 중간에 1733부터 8779는 모두 소수입니다. 이 문제를 처음 접하고 저는 어떻게든 해서 문제를 풀 수 있게 됬는데 다른 사람의 글을 보니 Breadth-first search 또는 Dijkstra’s algorithm algorithms 알고리즘을 사용해서 풀 수 있다고..