개발 블로그 운영하기
·
개발
개발 일을 하며 먹고살려면 꾸준히 공부하는 것이 중요하다컴퓨터공학을 공부하면서 프로젝트를 경험해 보니 대학에서 배운 이론은 실무와 차이가 있다물론 중요하지 않다는 것은 아니다. 하지만 대학 공부만으론 괴리감이 많이 발생하고,IT 분야에서 일하는 사람마다 실력 편차가 큰 것도 그것일 터다 개발을 시작하며군대를 전역하고 마냥 어떤 것을 공부해야 하나 고민하면서 가장 큰 니즈가 있는 웹앱을 먼저 공부했다군대에 가기 전 나는 C++로 알고리즘을 열심히 푸는 학생이었는데 PS만 해서 먹고살 수는 없다고 느껴 막무가내로 자바를 공부했다아무것도 모르는 상태로 우선 유튜브를 보고 Servlet + JSP로 게시판을 만들어봤다Bootstrap을 이용해서 간단하게 게시판을 만들어보니 뭔가 재미있었고, 기존 C++ 문법을 ..
BOJ 1713 후보 추천하기
·
알고리즘/BOJ
www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1≤N≤20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대로 www.acmicpc.net 구현, 시뮬레이션 문제 학생들이 추천을 시작하기 전에 모든 사진틀은 비어있다. 어떤 학생이 특정 학생을 추천하면, 추천받은 학생의 사진이 반드시 사진틀에 게시되어야 한다. 비어있는 사진틀이 없는 경우에는 현재까지 추천 받은 횟수가 가장 적은 학생의 사진을 삭제하고, 그 자리에 새롭게 추천받은 학생의 사진을 게시한다. 이때, 현재까지 추천 받은 횟수가 가장 적은 학생이 두 명 이상일 경우에는 그러한 학생들 중..
BOJ 13913 숨바꼭질 4
·
알고리즘/BOJ
www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 이번 문제는 경로를 추적해서 출력하는 문제였다. 조금만 생각해보면 금방 알 수 있는데, 현재 위치를 지나가는 배열 a를 만들어서 a[next] = cur 를 담고있다고 가정해보면 a[k] 에는 k에 도착하기 전 가장 마지막 위치가 담겨있을 것이고, a[마지막 위치] 에는 그 위치에 오기 위한 위치가 점진적으로 들어있을 것이다. 그렇다면 구현은 간단하다. 기존 bfs를 통해 최단..
BOJ 13549 숨바꼭질 3
·
알고리즘/BOJ
www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 숨바꼭질 2와 다르게 3은 cur * 2 지점으로 텔레포트할 때에 시간이 소요되지 않는다. 평범하게 큐로 bfs 할 경우 기존 cur -1, cur + 1을 하면서 K에 도착하게 되면 이후에 cur * 2 를 통해 도착하는 시간보다 더 크지만 이미 방문처리가 되어있으므로 값을 갱신시켜줄 수 없다. 어떻게 접근해야될까? 이 문제는 우선순위 큐를 최소 힙으로 선언한 후 time을 ..
BOJ 12851 숨바꼭질 2
·
알고리즘/BOJ
www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 며칠 고민해봤는데 풀이 방법이 안 떠올라서 다른 블로그를 참고해서 풀었다. 두 개 정도의 풀이 방법이 있었는데 하나는 K로 가는 방법의 수를 배열 하나를 더 만들어서 접근하는 방법이고 다른 하나는 큐에서 팝 할 때 방문 체크를 해주는 방식이다. 첫 번째 방법은 시간이 항상 1씩 늘어난다는 것을 이용해서 d[next] == d[cur] + 1 이라면 cnt를 증가시키는 방법이..
프로그래머스 실패율
·
알고리즘/Programmers
글이 복잡하게 쓰여있지만 이해하기 그리 어렵지 않다. result에 실패율이 높은 순으로 정렬해서 return 해주면 되는데 어떻게 실패율을 구할 것인가가 중요하다 우선 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 인데 현재 스테이지 개수 / 현재보다 크거나 같은 스테이지의 개수로 치환 가능하다. 따라서 전처리를 통해 stages의 원소들이 몇 번 등장했는지와 가장 큰 값을 구해놓는다. 가장 큰 값은 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0으로 정의한다. 조건 때문에 필요한데 for 문을 돌리면서 i 값이 가장 큰 값보다 크다면 실패율을 0으로 push 해줘야 하기 때문이다. pair벡터를 로 선언해주는데 idx와 fail rate를 ..