https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019 카카오 개발자 겨울 인턴십의 Level 1 문제다. 각 바구니를 뜻하는 스택 배열(doll[])을 만들어 인형을 push했고, 크레인 작동으로 꺼내온 인형을 담는 스택(stack)을 만들었다. 인형을 하나씩 stack에 집어넣을 때마다 스택의 가장 위 인형이 무엇인지 확인(peek)하고, 집어넣으려는 인형과 스택의 가장 위에 있는 인형이 같다면 그 인형 두개가 터트러져야 하므로 cnt를 ..
https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 정점 사이의 거리와 함께 트리가 입력으로 주어졌을 때, 두 정점 사이의 거리가 가장 긴 거리를 구하는 문제이다. 처음엔 DFS로 두 개의 정점을 선택하고, 선택된 두 개의 정점 사이의 거리를 구해 최종 출력할 변수보다 크면 그 거리를 대입하는 형식으로 풀었다. 제대로 값이 구해지긴 하지만 모든 정점의 조합을 구하고 그 값을 구하는 과정이 비효율적이기 때문에 시간 초과가 났다. 정점..
https://www.acmicpc.net/problem/14852 14852번: 타일 채우기 3 첫째 줄에 경우의 수를 1,000,000,007로 나눈 나머지를 출력한다. www.acmicpc.net 대표적인 2차원 dp문제다. 나동빈님 알고리즘 강의(https://www.youtube.com/watch?v=kYoKLm8BZtI)를 보면서 이해했는데 2차원 dp를 사용할 때부터 설명이 많이 생략되어 이해하기 힘들었고, 구글링 해도 자세한 설명이 나오지 않았다. 나중에 까먹었을 때 다시 이해하기 위한 설명을 적어본다. (내 방식대로 적었기 때문에 참고하긴 어려울듯 싶다) 점화식 세우는 과정과 1차원 dp를 사용하는 코드는 따로 설명 x 유튜브 링크 참고. import java.io.BufferedRead..
MySQL에서는 월요일부터 일요일까지 0~7로 나타내므로 case문을 사용해서 한글로 출력하면 된다 SELECT CASE a.a WHEN '0' THEN '월' WHEN '1' THEN '화' WHEN '2' THEN '수' WHEN '3' THEN '목' WHEN '4' THEN '금' WHEN '5' THEN '토' WHEN '6' THEN '일' END AS week, IFNULL( b.cnt, 0 ) AS cnt FROM ( SELECT a.a FROM ( SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 ) AS a )..
- Nexacro : 화면 설계하고 자바스크립트로 코드 작성 - Eclipse eGovFrame: xml 형태의 sql 쿼리문 작성, 버전 관리, 서버 실행 - TortoiseSVN: 버전 관리 도구 - ERwin: 쿼리문 작성을 위한 ERD 참고(논리 설계 물리 설계) - TiberoStudio2: sql 쿼리문 실행, 프로시저나 사용자 정의 함수 참고 - WinMerge: 버전 관리 충돌 해결 - Maven: 빌드 도구 - Apache-tomcat 8.5.66: 웹 서버(개발한 페이지 서버에서 확인 함) - Notepad++: 쿼리문 작성하거나 환경설정 파일 수정 - Everything: 파일 탐색기 기능 - ProcessExplorer: 실행되고 있는 프로세스 관리 이렇게 정리해보니 꽤나 많은 걸 ..
내가 구현하려던 건 안드로이드에서 사용자에 대한 인공지능 모델을 생성하고, 그 결과값을 받아오는 것이었다 (안드로이드->web->파이썬) 당연히 어플을 실행하지 않아도, 백그라운드에서 인공지능 모델을 생성하고 학습시켜야 했기 때문에 백그라운드로 로직을 실행할 수 있는 Service 클래스로 구현했다 그런데 파이썬에서 모델을 학습시키기 위해서는 아주 많은 시간이 필요했고.. 안드로이드에서 파이썬의 응답을 기다리는 동안 ui가 멈춰 아무것도 하지 못했고, 응답시간이 넘으면 아예 ANR(Application Not Responding) 오류가 발생했다.. 구글링하다가 서비스는 응답시간이 10초가 넘으면 ANR오류가 발생한다는 걸 봤고, 백그라운드에서 ui의 제한없이 실행할 수 있는 클래스들을 찾아봤다 그리고 ..
프로젝트를 진행하다보니 여러 형식으로 날짜를 출력해야 할 때가 많았다. 그럴 때마다 DATE_FORMAT에서 사용하는 알파벳들이 헷갈려서 검색하곤 했었는데, 자주 사용할만한 것들을 따로 정리하면 유용하게 쓰일 것 같아서 적어본다! DATE_FORMAT(날짜형식컬럼, 형식지정) 컬럼 대신 now()를 쓰면 현재의 날짜도 얻을 수 있다. ex) DATE_FORMAT(now(), '%Y-%m-%d') 구분 문자 설명 연 %Y 4자리 연도 연 %y 2자리 연도 월 %m 2자리 월(01-12) 월 %c 1자리 월(1-12) 월 %M 영어 월(January, February 등) 월 %b 영어 약자 월(Jan, Feb 등) 일 %d 2자리 일(01-31) 일 %e 1자리 일(1-31) 시 %H 2자리 24시간(00..
MainActivity 클래스 안에 BluetoothDataReceiver라는 BroadcastReceiver 클래스를 넣었다고 할 때, 위와 같이 지정해주면 된다. 보통 액션명은 com.example.패키지명.액션설명 이렇게 많이들 쓴다. "RECEIVED_DATA"처럼 액션에 대한 설명만 간단히 적어도 문제는 없다. 서비스 클래스의 변수가 변경될 때, MainActivity UI를 바꾸는 브로드캐스트를 바꾸려고 했다. 그런데 MainActivity 클래스 내에서만 액티비티의 ui를 변경할 수 있으므로(setText 등) 액티비티 안에 브로드캐스트의 클래스를 집어넣었다. (동적으로 브로드캐스트를 선언해도 되지만, 그럴 경우 액션을 발생시키는 클래스가 다른 클래스라면 LocalBroadcastManage..