목록전체 (195)
코딩하기 좋은날
카카오 1차 코딩테스트에 운좋게 합격해서 오늘 2차를 보게 되었습니다. 온라인으로 봐서 좀 귀찮긴 했는데 이런 테스트는 처음해봐서 재밌는 경험이었습니다. 15분정도 필기 시험 보는게 있습니다. cs 전반 지식이 나오는데 난이도는 쉬웠다고 생각합니다. 코딩테스트는 작년과 유형은 동일하다고 생각합니다. 미리 REST API 호출 코드를 준비해오라고 했었고 파이썬을 자주 쓰진 않지만 파이썬으로 진행을 했습니다. 작년의 친구추천 문제처럼 각 시나리오가 있고 요구하는 요청사항을 최소화 하도록 하는것이 문제였습니다. 이리저리 하다보니 1번 시나리오에서는 70점 중후반대? 정도를 받았고 2번은 아쉽게도 점수를 얻지는 못한것 같습니다. 막판에 순위를 보니 100등까지 확인이 되는데 85점 정도였던거 같았습니다. 문제 ..
어제는 카카오 오늘은 라인 코딩테스트를 치뤘습니다. 카카오는 7문제 5시간 라인은 6문제 3시간 이였습니다. 난이도는 카카오가 역시 훨씬 어렵습니다. 카카오는 대부분이 문자열을 다루는 문제 였던것 같네요. 7문제중에 1,2,4번은 풀고 3번은 효용성을 풀지 못했습니다. lower_bound 썻는데 뭔가 잘못 된거같아서 그냥 넘어갔어요. 4번이 플로이드 와셜 쓰는거 였고 1,2번은 문자열 처리후 완탐 이였던것 같습니다. 5번은 우선순위큐 이용해서 해볼려고 풀었는데 제 IDE에서는 답이 나오는데 프로그래머스에선 다르게 나와서.. 시간이 다되어서 해결은 못했는데 부분합으로 풀면 풀린다는 얘기를 들은 것 같습니다. 6,7번은 보지도 못했네요.. 아쉽습니다. 라인은 특정 알고리즘을 요구하는 문제는 없었던 것 같고..
어제 SCPC 2차 예선에 참가하게 되었습니다. 작년에도 참가를 하였는데 2차 예선에서 한문제 밖에 풀지 못해서 올해는 마지막으로 참가 할 수 있는 기회기도 하고 작년보단 더 늘었으면 하는 바람과 함께 참가를 하였습니다. 결과는 역시 무지하게 어렵습니다....... 너무어려워요 ㅠㅠ 물론 작년보단 많이 발전 한것 같습니다. 작년 데이터가 있길래 봤는데 1번만 맞췄었습니다 ㅋㅋ 올해는 그런데 참가자가 적은 것인지 문제 난이도가 어려웠던 건지 작년보다 문제를 맞춘 사람이 확실히 적네요. 문제에 대한 얘기를 해도 되는지 모르겠어서 자세히는 말하지 않겠습니다. 실제로 2번 문제인 고구마가 만점자가 더많은데 저도 1번문제 첨에 보고 모르겠어서 넘기고 고구마 부터 풀었습니다. 간략하게 말하자면 주어진 배열에서 구간..
원격으로 알림을 보낼 때 많이 쓰이는 FCM에 대해서 한번 알아 보겠습니다. 안드로이드 스튜디오의 Tools -> firebase 를 클릭하면 아래와 같은 창이 나옵니다. 1번과 2번을 각각 눌러서 dependency를 추가하고 프로젝트를 등록하고 google-services.json 파일이 추가되면 FCM을 수신 받을 수 있는 상태가 됩니다. 아 그리고 firebase-analytics는 자동으로 추가가 되지 않는데 이걸 추가안하면 FCM이 바로바로 오지 않는 것 같습니다. 실제로 FCM의 최적화를 위해 추가시키라는 글이 웹상에서 나오는 걸로 알고 있는데 추가시켜주면 보내자마자 바로 수신이 됩니다! 기본적으로 이렇게만 세팅을 해주면 FCM은 다음과 같은 상황에서 수신이 가능합니다. 1. 앱이 완전히 꺼..
처음에 만든 모습에서 조금씩 수정을 하다보니 3편 글을 쓰게 되었습니다. 1. Navigation Drawer 적용 기존의 단순 버튼을 클릭해서 동작하던 방식을 Navigation Drawer를 이용하였습니다. 메인화면에는 등록된 소환사들의 정보를 RecylcerView를 이용하여 보여줍니다. 왼쪽 상단의 메뉴 버튼을 클릭하거나 왼쪽에서 오른쪽으로 swipe를 하게 되면 아래와 같은 Navigation Drawer가 나오게 됩니다. 사용자 등록/삭제, API 키 변경을 클릭시 AlertDialog가 등장하며 값을 입력받아 동작을 수행하게 됩니다. KEY 발급 항목을 클릭시 Riot API 키를 발급 받을 수 있는 페이지를 웹뷰에서 띄우게 됩니다. 자신의 롤 ID를 통해 이 KEY 값을 발급 받은 뒤 AP..
SharedPreferences SharedPreferences는 DB를 사용하지 않고 간단하게 로컬에 데이터를 저장 할 때 사용 할 수 있습니다. 이전에 포스팅한 롤 알리미를 만들 때도 이를 사용하여 유저들을 저장하여 사용하였습니다. Key-Value 의 형태로 값을 저장하며 로컬에 파일형태로 저장되기 때문에 앱을 삭제하면 모든 데이터가 날아간다는 단점이 있습니다. 보통 Object로 선언을 한 뒤 자신이 set/get할 자료형에 대한 함수를 정의하는 방식으로 사용을 많이 하는 것 같습니다. 아래는 제가 사용한 예시입니다. 값을 쓰거나 수정하기 위해서는 getSharedPreferences를 통해서 객체를 얻어온 후 edit() 객체를 얻은 뒤 put... 을 통해 값을 쓸수 있습니다. 값을 변경한 후..
5. 소환사 저장 1편에서 사실상 목표로 하는 기능의 구현은 끝이 났습니다. 이제는 유저가 소환사를 등록 하고 이 등록된 소환사들을 대상으로 앞선 기능들을 수행해 주면 됩니다. 처음에는 DB를 이용하려 했으나 소환사 이름만 저장하는 것이기 때문에 굳이 그럴 필요가 없음을 느꼈습니다. 따라서 SharedPreferences를 이용하였고 소환사 이름 - Boolean 의 형태로 하나의 파일에 저장을 했습니다. 이것외에도 추가의 저장이 필요한 정보가 존재합니다. 앞서 우리의 구현과정을 보면 80초마다 API를 호출하여 게임 여부를 판단한다고 하였습니다. 그렇다면 동일 게임에 대해서도 알림이 또 전송되는 현상이 발생합니다. 라이엇에서는 각경기마다 matchID를 부여합니다. 따라서 이를 이용하여 위의 문제를 해..
평소 롤을 즐겨하는 유저로써 롤 API를 활용한 무언가를 만들어 보자라고 생각을 하였습니다. 그중 내가 등록한 사람이 게임을 시작했을 때 ! 알림을 알려주는게 있으면 편하겠구나 라는 생각이 들어 만들기 시작하였습니다. 간략하게 제작 순서를 설명하고 시작하겠습니다. 1. Riot API Key 발급받기 API를 이용하려면 당연히 Key를 발급받아야 합니다. https://developer.riotgames.com/ Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and r..