분류 전체보기
(Python) 백준 3190번 : 뱀
출처 : https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따 www.acmicpc.net (Python) 백준 3190번 : 뱀¶ 알고리즘 분류 : 시뮬레이션 출처 : https://www.acmicpc.net/problem..
(Python) 백준 1966번 : 프린터 큐
출처 : https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 www.acmicpc.net (Python) 백준 1966번 : 프린터 큐¶출처 : https://www.acmicpc.net/problem/1966 알고..
(Python) 백준 14499번 : 주사위 굴리기
출처 : https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도에 쓰여 있는 수가 북쪽부터 남쪽으로, 각 줄은 서쪽부터 동쪽 순서대로 주어진다. 주사위를 놓은 칸에 쓰여 있는 수는 항상 0이다. 지도의 각 칸에 쓰여 있는 수는 10을 넘지 않는 자연수 또는 0이다. 마 www.acmicpc.net 작성한 코드가 실행 조건이 비슷해서 일부 겹치는 부분이 있긴 하지만 코드 길이가 조금 길어지더라도 이해하기 쉽도록 풀어..
(Python) 백준 1018번 : 체스판 다시 칠하기
출처 : https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 알고리즘 분류 브루트 포스 시뮬레이션 내가 할 수 있는 모든 방법을 동원해서 가장 Brute Force하게 풀어봤더니 예상대로 시간을 많이 잡아먹더라.. (Python) 백준 1018번 : 체스판 다시 칠하기¶출처 : https://www.acmicpc.net/problem/1018 입력 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이..
(Python) 버블 정렬(bubble sort)
(Python) 버블 정렬(bubble sort)¶ 버블 정렬(bubble sort)란? 서로 인접한 두 원소들을 순차적으로 비교하여 정렬하는 알고리즘이다. (인접해 있는 두 원소의 크기가 순서에 맞지 않다면 서로 교환한다.) In [1]: from IPython.display import Image Image("img/bubble_sort.png") Out[1]: 버블 정렬(bubble)의 시간복잡도 비교 횟수 best, average, worst가 모두 일정하다. n-1, n-2, n-3, ... , 2, 1번 비교하므로 총 n(n-1)/2번 비교한다. 교환 횟수 입력 자료가 이미 정렬되어 있는 경우라면, 자료의 이동이 일어나지 않는다. 최악의 경우는 입력 자료가 역순으로 정렬되어 있는 경우이다. 두..
(Python) 리스트의 선형 탐색(linear search)
(Python) 리스트의 선형 탐색 (linear search)¶ 정렬되지 않은 리스트에서 특정 항목을 찾으려면 어떻게 해야 할까? 이미 정렬된 리스트라면 이진 탐색(binary search)처럼 좀 더 효과적인 탐색 방법을 사용해 볼 수 있겠지만 그렇지 않다면 순차적으로 배열의 모든 항목을 검사해서 원하는 값이 있는지 찾아야 할 것이다. 선형 탐색(linear search)는 가장 기본적인 탐색 방법으로, 위에서 언급한 바와 같이 배열의 모든 항목을 검사해서 원하는 값이 있는지 찾아내는 선형 탐색 기법이다. In [1]: # 배열(=array)안에 찾고자 하는 특정 항목(=value)이 있으면 그 index값을 return, 없다면 -1을 return def linear_search(value, arr..
(Python) 백준 2178번 : 미로 탐색
출처 : https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net (Python) 백준 2178번 : 미로탐색¶출처 : https://www.acmicpc.net/problem/2178 ※ 알고리즘 분류 BFS In [1]: from collections import deque # 입력값 받기 N,M = map(int, input().split()) maze = [list(map(int, input())) for _ in range(N)] 4 6 101111 101010 101011 ..
<form> 태그
: 사용자가 입력한 정보를 서버에 전송할 때 사용한다. : 사용자가 정보를 입력하기 위해 사용하는 태그이다. 태그의 속성 action : 사용자가 입력한 정보를 받는 서버 쪽 스크립트 파일을 설정한다. method : HTTP Method(Get or Post 방식)을 정의한다. ※ HTTP Method에서 Get방식과 Post방식의 차이? Get과 Post는 브라우저에서 입력 데이터를 서버로 보내는 기능을 수행하지만 그 방식에 차이가 있다. Get Post 데이터를 전송할 때 URL 끝에 데이터를 붙여서 보내는 방식이다. 정보가 외부에 노출되기 때문에 보안에 취약하다. Get은 지정된 리소스에서 데이터를 요청하는 데 사용된다. (데이터를 요청하는 것만 할 수 있다. 수정X, 삭제X, 읽기O) Get 요..
<table> 태그
: table data의 약자이다. 이외에 테이블 셀 안에 데이터를 나타내기 위한 것으로 태그도 있다. 태그만 사용할 경우, [그림 1]처럼 테이블 표로 완성되진 않는다. Header cells - contains header information (created with the element) Stardard cells - contains data (created with the element) The text in elements are bold and centered by default. The text in elements are regular and left-aligned by default. [그림 2]에서 , , 태그를 사용했다. 태그는 table row의 약자이다. 테이블 표를 만들기 위해..
<img> 태그 (이미지)
태그를 설명하기 앞서, 필요한 이미지를 얻기 위해 pixabay를 이용하면 좋다. pixabay에서 저작권 없는 이미지를 쉽게 다운받을 수 있다. 링크 : https://pixabay.com/ko/ 태그는 다음과 같이 사용된다. 간단하게 태그에서 사용되는 속성 몇가지에 대해서 알아보자. alt : 이미지가 나타나지 않을 때, "풍차 이미지"라는 text로 대체한다. title : 이미지 위에 마우스 커서를 가져다 놓으면, "풍차 이미지"라는 text가 나타난다. height : 이미지의 높이를 설정한다. width : 이미지의 너비를 설정한다. 만일 height 혹은 width중 하나만 선택해서 사용한다면, 나머지 부분은 원래 이미지 비율에 맞춰서 자동적으로 크기가 조절된다.