2019.07.23. 8일차 사서 고생하기 - 1일 1코딩 프로젝트-대선 전략 수립나라의 대통령 후보가 둘 있습니다.이 후보들 중 1번 후보는 자신이 현재 가장 지고 있는 선거구에 가서 마지막 선거 유세를 하려 합니다.지지율 조사 결과를 나타내는 String[] stats이 주어 집니다.String[] stats의 각 요소는 선거구를 나타내며, 각 요소는 문자열로 주어집니다.문자열은 '1'과 '2'로 구성되어 있는데, '1'은 후보1을 지지하는것을 뜻합니다. '2'는 후보2를 지지하는것을 뜻합니다.후보1의 지지율이 가장 낮은 선거구의 인덱스를 리턴하세요.만약, 지지율이 가장 낮은곳이 여러곳이라면, 그 중 더 낮은 인덱스를 리턴하세요.1과 2의 개수를 count1, count2의 변수에 각각 담고 차례대로..
2019.07.22. 7일차사서 고생하기 - 1일 1코딩 프로젝트-백준 4949번. 균형잡힌 세상세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다.정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다.문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다.모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이룰 수 있다.모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이룰 수 있다.모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다.모든 괄호들의 짝은 1:1 매칭만 가능하다. 즉, 괄호 하나가 ..
2019.07.21. 6일차사서 고생하기 - 1일 1코딩 프로젝트-정렬하기양의 정수가 담긴 int[] arr가 주어집니다.int[] arr의 각 요소를 문자열이라 가정했을때의 "사전순" 기준 오름차순으로 정렬하여 리턴하세요.※ [15, 143, 167]을 "사전순" 기준 오름차순 정렬하면, [143, 15, 167] 입니다.int[] arr을 String형으로 변환한 뒤 bubble sort를 응용해서. compareTo 함수를 이용해 사전 순으로 정렬하였다.
2019.07.20. 5일차사서 고생하기 - 1일 1코딩 프로젝트-수열 중복 제거수열 int[] sequence가 주어집니다.만약 중복된 숫자가 있을 경우 중복되는 숫자를 지우려고 합니다.중복된 숫자들을 지울때 중복된 숫자 중 인덱스가 가장 높은 숫자만 남기고 나머지를 지웁니다.위의 규칙대로 중복이 제거된 수열을 리턴하세요.int[] sequence 배열을 복제한 arr을 만들고 arr 배열의 원소를 Collections.reverse()를 이용해 뒤집고,arr2라는 비어있는 배열을 만들고! arr2.contains(arr.get(i)) (arr.get(i)가 arr2에 포함되어 있지 않다면) arr2에 arr[i]의 원소를 집어넣는 방식으로 구현하였다.
2019.07.19. 4일차사서 고생하기 - 1일 1코딩 프로젝트-잔액 계산은행 전산실에서 일을 하고 있습니다.고객 계좌의 전날 잔액 int balance가 주어집니다.고객이 할 수 있는 거래는 두가지 입니다.1. 입금(계좌에 금액 입금)2. 출금(계좌에서 금액 출금, 신용 거래가 가능한 계좌이기 때문에 마이너스도 가능 합니다.)입금은 "C 거래금액" 으로 나타내고, 출금은 "D 거래금액" 으로 나타냅니다.(자세한 사항은 예제를 참조하세요.)오늘의 거래내역 String[] transactions가 주어질때, 최종 잔액을 리턴하세요.contains 함수와 subString이라는 함수를 이용하여 C와 D 뒤에 어떤 int형 숫자가 있는지 확인하고. 알맞은 값을 result에 더하고 빼서 구현했다.
2019.07.18. 3일차사서 고생하기 - 1일 1코딩 프로젝트-큐만들기String[] cmds에 문자열로된 여러개의 명령어가 있습니다.명령어는 두가지 입니다.1. "PUSH X"- 큐에 정수 X값을 넣습니다.2. "POP"- 큐에서 가장 앞에 있는 데이터를 꺼냅니다.- 만약 큐에 아무것도 있지 않다면, 명령을 무시합니다.위에 명령들 모두 수행한 후에 큐에 남아 있는 값들을 리턴하세요.contains 함수와 subString이라는 함수를 이용하여 PUSH와 POP뒤에 어떤 int형 숫자가 있는지 확인하고. 알맞은 값을 result에 더하고 빼서 구현하고, prevent라는 값을 통해 IndexOutofBoundsException 이 발생하지 않도록 구현했다.
2019.07.17. 2일차사서 고생하기 - 1일 1코딩 프로젝트-셀프넘버 판별양의 정수 n에 대하여, F(n) = n + n의 각 자리 숫자 로 정의되는 함수가 있습니다.예를들어 F(12) = 12 + 1 + 2 = 15 입니다.양의 정수 n에 대하여 한가지 아래와 같은 무한한 수열을 생각해봅시다.n, F(n), F(F(n)), F(F(F(n))), ...예를들어 n이 12일때, 12, 15, 21, 24, 30, 33, ... 이렇게 진행됩니다.위의 수열에서, 12는 15의 생성자이고, 21은 24의 생성자로 정의 합니다.또한, 어떤 숫자의 생성자는 2개일 수도 있는데 예를들어 101의 생성자는 91과 100이 있습니다.어떤 숫자는 생성자가 없을수도 있는데, 이 수를 인도의 수학자 D. R. Kapr..
2019.07.16. 1일차사서 고생하기 - 1일 1코딩 프로젝트-13구하기 정수 int a가 주어집니다.1이상 int a이하의 정수 중 숫자에 13이 들어가는 숫자의 개수를 리턴하세요.
끄적끄적이라는 앱을 출시했다. 이 앱은 혼자 끄적일 수 있는 나만의 공간을 제공하는 앱이다. 매우 심플한 앱이다. 앱을 실행하면 EditText 하나밖에 없다. 이게 끝이다. 그리고 스와이프를 통해 삭제, 복구, 테마 변경 등을 할 수 있다. 밑은 앱 설명이다. 우리는 힘든 일이 있거나 마음을 다쳤을 때 무언가 할 것을 찾습니다. 그게 일이든 취미생활이든 수다든 뭐라도 하고 나면 조금은 스르르 풀리고 힘든 것도 아픈 것도 완전히 사라지진 않겠지만 어느 정도 옅어지며 안정을 되찾는 게 마음입니다. 마음을 끄적여보세요. 처음엔 낯설게만 느껴지고 잘 끄적일 수 없을 것 같지만 익숙해지면 누구에게도 털어놓을 수 없는 남모를 고민도 속 시원히 털어놓을 수 있는 좋은 친구가 되어줄게요.
루딘프 앱 소개 사진을 좀 더 사용자가 쉽게 기능을 확인할 수 있게 변경하였다. Adobe After Effects 를 이용해 직접 디자인하였다.
빅스비 호출 버튼을 아이폰의 무음 스위치처럼 바꿔주는 앱을 출시했다. 구현이 많이 힘들었다. 왜냐면 삼성은 빅스비 호출 버튼을 커스텀 하는 것을 금지하기 때문이다. 하지만 조금 생각을 달리해서 개발해보았다. 안드로이드 빅스비 설정에 가보면 빅스비 버튼을 눌렀을 때 다른 앱을 실행시키는 기능만은 지원해준다. 그래서 앱을 위젯처럼 실행하자마자 작동하는 형식으로 개발한 뒤, 빅스비 버튼을 누름으로써 방해금지 모드를 껐다 키는 커스텀 앱이 개발되었다!
일기장 회원정보 암호화 작업을 시작했다. 많은 변수와 오류 발생을 각오하고 시작했다. 많은 고려 사항이 있었는데, 모든 회원에게 고유 ID를 부여하는 일이었다. 루딘프 앱은 회원가입할 때 이름과 패스워드만을 입력받기에, 이름은 충분히 겹칠 수 있었고 꼭 고유 ID를 부여했어야 했다. 그런 뒤, 서버상에 회원 목록을 만들고 비밀번호 암호화 작업을 했다 오류 발생 없이 대규모 작업을 해서 다행이다!
루딘프 앱을 출시한지 약 3달이 지났다. 많은 분들이 다운로드해주셔서 성취감이 크게 느껴졌다. 처음에는 어렵던 서버 관련 작업도 한두 번 하다 보니 능숙하게 할 수 있게 되었다! 특히 일기장 삭제라던가, 비밀번호 변경 기능 등의 구현에 애를 먹었는데, 이제는 능숙하게 할 수 있게 되었다.
정보처리기능사 자격증 취득에 성공했다! 알고리즘은 All or nothing이기에 제일 열심히 공부했다. 첫 시도만에 취득에 성공하니 너무 기분이 좋다.
루시드 드림(자각몽)에 관한 전문적인 정보와 도구를 제공해주는 '루딘프' 라는 어플을 19년도 1월 4일에 처음으로 플레이스토어에 출시하였다. 다양한 기능이 있고, 대표적으로는 아이디와 패스워드를 이용해 사용자의 꿈 일기장을 서버에 안전하게 저장해주는 '꿈 일기장' 이 있다. 아래는 출시 당시 꿈 일기장 화면을 캡처한 것이다.