분류 전체보기
-
정승환 - 이 바보야snack/음악 2016. 11. 30. 19:21
세상이 멈춘 것 같았어 우연히 널 거리에서 마주쳤을 때 가끔 들리는 너의 안부에도 난 꼭 참았는데 이 바보야 너 땜에 아프잖아 왜 또 옷은 춥게 얇게 입었어 나를 피하는 눈빛이 야윈 너의 얼굴이 그런 니가 미워서 나는 또 밤새 취해 간다 어디부터 잘못된 걸까 천천히 너에게 맞춰 기다렸다면 내가 가진 현실은 초라했고 마음만 커져가고 나 땜에 힘들다고 했잖아 행복해지고 싶다 그랬잖아 어떻게 널 보냈는데 이 바보야 너 땜에 아프잖아 왜 또 옷은 춥게 얇게 입었어 내 전부였던 눈빛이 사랑했던 얼굴이 여전히 반가워서 눈물이 흘러 어렸어서 서운해서 소중해서 불안해서 다 망쳐버린 걸 알아 다 미안해 이 바보야 얼마나 사랑했는데 어떻게 헤어졌는데 다신 만나지 말자 잡을 수 없게 잘 살아줘
-
[BOJ 2673] 교차하지 않는 원의 현들의 최대집합자료구조 및 알고리즘/문제풀이 2016. 11. 22. 16:16
DP 문제가 익숙하지는 않아, 이런 문제를 접할 때마다 어렵게 느끼고는 하는데, 처음에 해당 문제를 보고 작성했던 코드가 굉장히 길었던 데에 반해서 매우 짧은 코드로 해결이 가능하기에 해당 코드를 작성해보았습니다. 언어는 Java를 이용했습니다. 아래쪽은 문제의 링크입니다. https://www.acmicpc.net/problem/2673 문 제 평면상에 있는 원의 둘레에 100개의 점이 일정한 간격으로 시계방향으로 번호가 1, 2, ... 100으로 붙여져 있다. 이 점들을 끝점으로 갖는 N개의 선분(원의 현)이 입력으로 주어질 때, 이들 중에서 서로 교차하지 않는 것들을 최대한 많이 찾아서 그 개수를 출력하는 프로그램을 작성하라. ( 단, 1
-
[Java] BufferedReader, BufferedWriter 를 이용한 빠른 입출력자료구조 및 알고리즘/문제풀이 2016. 11. 21. 20:56
알고리즘 공부를 하면서 별 의미를 두지는 않았었으나, 실제로는 입출력 때문에 유의미한 시간의 차이가 나는 경우가 꽤 있었기에, BufferedReader 와 BufferedWriter 를 이용하여 입출력 받는 방식에 대해 간단하게 설명드리고자 합니다. Java를 사용할 경우, 입력 시에는 보통 Scanner를 이용하여 많이 입력을 받곤 하는데, 테스트 케이스의 수가 적을 때는 큰 문제가 되지 않지만 그 수가 커질 수록 Scanner로 입력받는 데에 한계를 느낄 수 있습니다. Scanner Scanner sc = new Scanner( System.in ); int T = sc.nextInt(); 아무래도 쓰기 편하기 때문에 간단하게 짜는 경우는 Scanner를 쓰는 것이 좋아보입니다. 그러나 위에서 말씀..
-
플라스크(Flask) ; 로컬 서버 실행개발/python 2016. 8. 28. 01:26
플라스크에 대해 설명 드리면서 예제로 항상 app.run() 함수를 이용했었습니다. 그렇지만, 아마 코드를 실행시켰던 PC가 아닌 다른 호스트에서 접속하려면 접속이 되지 않았을 것입니다. 따로 IP를 설정해주지 않아도 로컬 IP 주소인 127.0.0.1로 자동으로 접근되기도 하기때문에 별 신경을 쓰지 않았습니다. 그렇지만 만약 다른 호스트에서 접근하고자 한다면 app.run() 함수에 host 인자를 넘겨주면 됩니다. 또한 네트워크를 '0.0.0.0'으로 지정하면 어떤 호스트에서도 연결 가능합니다. app.run(host='0.0.0.0') 이외에도 run() 함수는 debug라는 인자를 가집니다. 기본값은 False 이며, 이름과 마찬가지로 디버그 정보를 보여주느냐 마느냐 여부를 결정하는 인자입니다. ..
-
플라스크(Flask) ; 에러와 로깅개발/python 2016. 8. 27. 02:04
에러(Error) 일반적으로 웹 브라우저에서 요청한 URL 에 대해 응답이 없으면 발생하는 404 에러가 발생합니다. 이처럼 http 오류 코드에 대해 플라스크에서는 브라우저의 에러코드 화면이 아니라, 사용자가 별도로 지정한 화면으로 처리할 수 있습니다. 우선 간단한 예제 코드부터 보도록 하겠습니다. @app.errorhandler(404) def page_not_found(error) return render_template('page_not_found.html'), 404 예제코드에서 일단 눈에 띄는 것은 errorhandler 라고 하는 데코레이터와 리턴값이 2개라는 점입니다. 파이썬에 대한 문법을 설명을 제대로 한 적이 없지만, 파이썬에서는 함수에서 여러개의 리턴값을 지정하는 것이 가능합니다. 2..
-
플라스크(Flask) ; Jinja2 템플릿 엔진 기본문법개발/python 2016. 8. 26. 00:50
플라스크에서는 템플릿을 이용하여 html을 구성한다는 설명을 지난 포스팅에서 했었습니다. 그렇다면 이 템플릿을 해석하는 템플릿 엔진인 Jinja2의 기본적인 문법에 대해서도 조금 알아야겠다 싶어 포스팅합니다. 우선 죄송하게도 모든 문법을 다 설명드리지는 못한다는 것을 말씀드립니다. 만일 더 상세한 지식이 필요하신다면 아래쪽의 링크를 걸어둔 Jinja Docs를 참조하시면 좋을 것 같습니다. Jinja2 Docs 첫 번째 링크Jinja2 Docs 두 번째 링크 우선 예제 코드를 적어보겠습니다. 단순히 이런식으로 사용된다는 것을 보여주기 위한 예제이므로, 깊게 이해하시기 보다는 이러한 형태를 가지고 있구나라고 생각해 주세요. {% for item in navigation %} {{ item['caption'..
-
플라스크(Flask) ; 정적 파일과 템플릿(HTML/CSS/JavaScript)개발/python 2016. 8. 25. 02:11
이번 포스팅에서는 정적 파일과 템플릿에 대해서 적었습니다. 아마 다들 마찬가지시겠지만, 플라스크를 이용해 서버를 띄우고 난 뒤에는 당연하게 드는 의문이 있습니다. 지금까지야 단순하게 문자열 형태를 리턴하여 화면에 출력했는데, HTML 파일 같은 경우는 어떻게 가져와서 출력할까? 라는 생각입니다. 물론 텍스트로 파싱(Parsing) 해도 되기야 하지만, 아무리 생각해도 적절한 방법은 아닌것 같습니다. 결론부터 말씀드리자면, 당연하게도 플라스크에서도 HTML이나 CSS, JavaScript와 같은 파일들을 읽어 사용할 수 있습니다. 이에 대해 간략히 소개해보겠습니다. 우선 지금까지 우리는 항상 하나의 파일에서 작업을 해 왔습니다. 그러나 이제는 파일들을 분리하고자 합니다. 플라스크에서는 이러한 파일들의 위치..
-
플라스크(Flask) ; 동적인 URI개발/python 2016. 8. 24. 01:56
지난 번 포스팅 때 플라스크를 이용해 간단하게 웹서버를 띄워보았습니다. 이번에는 URI를 동적으로 사용하는 방법에 대해 예시를 들어 간단하게 보도록 하겠습니다. 저희가 이전에 사용했던 코드는 아래와 같습니다. from flask import Flask app = Flask(__name__) @app.route('/') def hello_flask(): return 'Hello Flask!' if __name__ == '__main__': app.run() 여기서 눈치빠른 분들은 알아차리셨겠지만, @app.route라는 부분 뒤에 '/'라고 URI와도 같은 것을 셋팅해주는 것을 알 수 있습니다. 플라스크는 기존에 복잡하게 연결해야했던 URI를 위처럼 @app.route라는 한 줄로 해결해 줍니다. 위의 경..