-
Flexbox 기본 다지기 :: 마이구미HTML, CSS 2017. 10. 23. 20:41
이 글은 flex 레이아웃에 대한 기본적인 이해를 도와줄 것이다. 글에서 다루는 것들만 이해해도 많은 이점을 얻게 된다. 예제는 하단 또는 다음 링크를 참고바란다.flex-direction 의 값을 사용한다면, 주축과 교차축을 바뀐다는 것을 인지하고 있어야한다.또한, flexBox 를 다룰 때에는 관련된 속성들의 디폴트 값을 이해할 필요가 있다. Flexbox 기본 - https://codepen.io/mygumi/pen/vewOoY Flexbox 응용 - https://codepen.io/mygumi/pen/ZMGaPm 다음 글 Flex 기본 2(flex-wrap, flex) - https://mygumi.tistory.com/344 Flexbox 란 무엇인가? Flexible boxes 또는 flex..
-
Java EOF 처리 :: 마이구미Java 2017. 10. 22. 15:11
이 글은 Java에서 EOF(End of File) 처리에 대해 다뤄본다.알고리즘 문제 풀이에 대한 기준임을 참고바란다.Java에서 사용되는 입력 클래스에 대한 기본 지식이 필요하다.Java 입력 클래스 - http://mygumi.tistory.com/78 컴퓨팅에서, 파일 끝(End of File, EOF[1])는 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다. 알고리즘 문제를 접해본 적이 있다면, 입력 부분의 기준이 없는 문제를 접해본 적이 있을 것이다.예를 들어, 다음과 같은 문제가 된다. https://www.acmicpc.net/problem/5639 입력 클래스는 2가지인 Scanner, BufferedReader로 구성된다.각각의 EOF 처리 방법은 다음과 같다. Sca..
-
ES6 class 도입에 대한 이해 :: 마이구미Javascript 2017. 10. 18. 15:43
이 글은 ES6에서 도입된 class 키워드에 대한 이해를 도울 것이다.광범위하고 깊은 내용이 많기에, 다소 간략하게 다룬다.자세한 사항은 관련 링크를 참고하길 바란다. 자바스크립트는 ES6에서 class 키워드가 도입되었다.class, super, extends, static 등 class 기반의 키워드들이 도입되었다.클래스 기반에 익숙한 사용자에게는 좋은 소식이지만, 한편으로는 많은 비평이 존재한다. Why? 왜 class 도입에 대해 많은 이야기가 오고가는 것인가? 우선 자바스크립트가 나온 시점으로 돌이켜보자.클래스 기반 언어인 C++ 또는 JAVA 개발자가 자바스크립트는 다룬다면, 과거에나 현재에나 비슷한 의문과 혼란을 가진다.(간단히 말하자면, 동적 언어라는 것과 클래스가 존재하지 않는다는 점이..
-
백준 1342번 행복의 문자열 :: 마이구미알고리즘 풀이/수학 2017. 10. 15. 22:55
이 글은 백준 알고리즘 문제 1342번 "행복의 문자열" 을 풀이한다.순열(permutation) 알고리즘을 통해 문제를 해결할 수 있다.순열 알고리즘 이해 - http://mygumi.tistory.com/601342번 - https://www.acmicpc.net/problem/1342 민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작했다. 준영이는 문자열 S에 나오는 문자를 재배치하면 서로 다른 행운의 문자열이 몇 개 나오는지 궁금해졌다. 만약 원래 문자열 S도 행운의 문자열이라면 그것도 개수에 포함한다. 행복의 문자열의 예는 다음과 같다. aabbbaa=> aba..
-
백준 9518번 로마 카톨릭 미사 :: 마이구미알고리즘 풀이/그래프 2017. 10. 15. 22:33
이 글은 백준 알고리즘 문제 9518번 "로마 카톨릭 미사" 를 풀이한다.본인은 BFS를 응용하여 문제를 풀이하였다.9518번 - https://www.acmicpc.net/problem/9518BFS 이해 - http://mygumi.tistory.com/102 로마 카톨릭 미사에서 가장 멋진 부분은 사람들이 서로 악수를 하면서 "평화가 함께하기를" 이라고 말하는 평화 의식이다.성당에는 R개의 벤치가 한 행에 하나씩 있고, 각 벤치에는 총 S명이 앉을 수 있다. 성당의 좌석 배치는 크기가 R × S인 행렬로 나타낼 수 있고, 행렬의 각 원소는 사람이 있는지 없는지로 나타낼 수 있다. 모든 사람은 자신의 이웃과 악수를 한다고 가정한다. 이웃은 사람이 있는 칸과 인접한 칸 여덟개이다. (칸이 존재하지 않을..
-
백준 3055번 탈출 :: 마이구미알고리즘 풀이/그래프 2017. 10. 15. 22:09
이 글은 백준 알고리즘 문제 3055번 "탈출" 을 풀이한다. 본인은 BFS를 활용하여 문제를 해결하였다. 3055번 - https://www.acmicpc.net/problem/3055 기본 DFS, BFS - http://mygumi.tistory.com/102 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S..
-
백준 1520번 내리막 길 :: 마이구미알고리즘 풀이/동적계획법 2017. 10. 12. 09:35
이 글은 백준 알고리즘 문제 1520번 "내리막 길" 을 풀이한다.풀이 방법은 DFS + DP(동적계획법) 을 통해 해결한다.DFS - http://mygumi.tistory.com/1021520번 - https://www.acmicpc.net/problem/1520 단순히 모든 경로를 탐색한다면, 시간 초과를 경험하게 된다.시간을 줄일 수 있는 방법은 다음과 같다.20 지점에 오면 더이상 탐색할 필요가 없이 경로가 존재한다는 것을 찾을 수 있다.존재하는 경로를 활용하는 방법으로써, 동적계획법을 이용할 수 있다. dp[y][x] = (y, x) 지점일 때 존재하는 경로의 갯수 DFS를 완벽히 이해하고 있다면, 쉽게 코드를 이해할 수 있다.* dp배열을 -1로 초기화한 이유는 방문여부를 위함이다. 1234..
-
REST API를 위한 HTTP 상태 코드 :: 마이구미HTTP 2017. 10. 10. 20:26
이 글은 REST API 설계를 위한 기본적인 HTTP 상태 코드를 다룬다.일반적으로 실제 주로 이용하는 상태 코드들을 다룬다.조금 더 자세한 내용과 다른 상태 코드는 링크를 참고바란다.http://www.restapitutorial.com/httpstatuscodes.html또한, REST API를 기반으로 HTTP 상태 코드를 다룬다는 것을 인지하자. 기본적으로 성공은 200, 잘못된 요청은 400, 서버 오류는 500 이라고 알고 있다.그 결과, 안 좋은 사례로는 위와 같은 상태 코드를 한정적으로 사용하는 모습을 많이 볼 수 있다. 여기서 의문이 들 수 있다. 왜 한정적으로 사용하는 것이 안 좋은 사례인가? 성공은 200, 실패는 400, 오류는 500 더 간단하고 직관적이지 않은가? => 클라이언..