전체 글(101)
-
[PG] 카카오 _ 신규 아이디 추천
https://programmers.co.kr/learn/courses/30/lessons/72410 접근 방법 매우매우 구현 문제라 생각하고 노가다라 생각을 했었다.. 하지만 문제를 풀고 나서 다른 사람들의 코드를 보니 나의 코드는 너무나 미숙했었다. [ 정규식에 대해 알아봐야 할 것 같다. ] Need Know 구현 정규식 다른 사람의 Amazing한 풀이 class Solution { public static String solution(String new_id) { String answer = ""; String temp = new_id.toLowerCase(); temp = temp.replaceAll("[^-_.a-z0-9]",""); temp = temp.replaceAll("[.]{2,}"..
2021.09.18 -
[BOJ] 10800. 컬러볼
https://www.acmicpc.net/problem/10800 접근 방법 class Ball implements Comparable{ int index, color, size; public Ball(int index, int color, int size) { this.index = index; this.color = color; this.size = size; } @Override public int compareTo(Ball o) { return size-o.size; } } // 자료구조형은 이렇게 가져간다. 공을 크기 순으로 정렬을 먼저하였다. 이제 문제는 같은 색깔에 대한 구슬의 크기는 잡아먹지 않아야한다. 그러기 위해서는 (누적값 - 같은색깔의 누적값) 을 해주면 된다. int[] answ..
2021.09.18 -
[BOJ] 20056. 마법사 상어와 파이어볼
https://www.acmicpc.net/problem/20056 접근 방법 구현 문제는 대부분 데이터를 어떻게 저장하는지에 따라 풀이가 달라진다. (제일 중요) 격자의 맵에서 데이터를 어떻게 담아줘야 할 지 생각을 했고 파이어볼2차 배열을 생각하였다. LinkedList[][] map = new LinkedList[N][N]; // 이렇게 할 경우 x,y에 대해 Fire 정보를 모두 가져올수 있기 때문이다. 또한, move를 해주게 될 때 map은 새로운 map이 되기 때문에 move를 해준 후 다시 추가를 해줘야한다. static void move(){ List next[][] = new LinkedList[N][N]; for(int i = 0; i < N; i++) { for (int k = 0;..
2021.09.18 -
[Android] Retrofit2
Retrofit이란? Retrofit은 API를 Java인터페이스로 변환하여 Rect 웹 서비스에 쉽게 연결 할 수 있게 하는 라이브러리이다. JSON 또는 XML데이터를 쉽게 처리 할 수 있으며 GET, POST, PUT, PATCH , DELETE 같은 Request를 모두 실행 할 수 있게 만든다. 또한 Retrofit은 네트워크 Request를 처리하기 위해서 OKHttp를 사용하며 Gson, Jackson과 같은 JSON변환기 라이브러리에 대한 지원도 제공한다. Annotation 종류 Interface에서 Method 위에 @GET @POST @PUT @PATCH @DELETE Method의 매개변수에서 .. @Path API 엔드포인트의 변수를 대채 @Query 어노테이션의 매개변수 값으로 ..
2021.07.16 -
[Android] Android Architecture
Android 권장 아키텍처를 따라야 할까? 안드로이드 개발자는 앱을 개발하는데 있어 고려해야 하는 것이 있다. 바로 모바일 앱 사용자 환경 이라는 것이다. 모바일 앱 사용자 환경이란 ? 예를 들어보자. 우리가 게임을 하였을 때 중간에 전화가 올 수도 있고 문자를 해야 하는 상황이나 급하게 무언가를 입력해야 해서 인터넷에 들어가는 경우도 있다. 이 순간에 사용자는 게임을 나간 상황이지만 사용자 환경은 끊임없이 연결되어있는 상태라고 볼 수 있다. 이러한 상태를 모바일 환경이라 생각하면 편할 것이다. 따라서, 앱은 이러한 사용자 환경 흐름을 올바르게 처리하도록 설계되어야 한다. 위 예제을 통해 안드로이드 앱을 구성하는 컴포넌트들은 사용자 환경 흐름에 따라 개별적이고 비순차적으로 실행될 수 있으며 사용자가 언..
2021.06.11 -
[Android] Dalvik & ART
Dalvik, ART 가 나온 배경 일반적인 컴파일 언어는 CPU의 아키텍쳐와 플랫폼의 환경에 맞추어 기계어로 번역된다. 한마디로 사람이 작성한 언어를 CPU가 알아 볼 수 있는 언어로 번역하는 것이다. 하지만 자바의 경우, 한가지 CPU의 아키텍쳐나 환경에 맞추는 것이 아닌 바이트코드라는 것으로 컴파일 되며, 이를 실행하기 위해 자바 가상 머신이 필요하다. 자바는 바이트코드만으로 여러가지 아키텍쳐나 플랫폼에서 작동할 수 있도록 하는 것이 목표이기 때문이다. 자바 가상 머신인 JVM을 사용할 수 있지만 라이선스 문제로 구글에서 Dalvik VM을 따로 개발해서 안드로이드에 넣었다. 현재 Android5.0(API 21) 이상에서는 ART(Android Runtime)이 기본 런타임 환경 Dalvik VS..
2021.06.08