본문 바로가기
  • Jetpack 알아보기

분류 전체보기189

안드로이드 앱의 기본 구성 요소 (1) : Actvity와 수명주기 Activity는 안드로이드 앱 개발에 있어 필수적으로 알아야 할 구성요소입니다. 가장 큰 특징은 앱이 UI를 그리는 창을 제공한다는 것입니다. 우리가 보통 보는 앱의 화면은 Activity 이며, 대부분의 앱은 여러 화면을 제공하기 때문에 여러 개의 Activity로 구성되어 있다고 생각할 수 있습니다. 또한, Activity는 사용자가 앱 상호작용을 하기 위한 진입점입니다. 한 앱이 다른 앱을 호출할 때, 전체를 호출하는 것이 아니라 다른 앱의 Activity를 호출하는 것이기 때문입니다. 이러한 동작은 manifest 파일에 Activity 및 관련된 속성을 선언하여 구성할 수 있습니다. Manifest 구성 Activity를 사용하기 위해서는 manifest 파일에서 태그를 하위 요소로 추가해야 .. 2021. 9. 6.
[JAVA] 프로그래머스 Lv.2 : [1차] 뉴스 클러스터링 🔥 2018 KAKAO BLIND RECRUITMENT 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개발자 공채 카카오 공채, 신입 개발자 코딩 능력만 본다 카카오, 신입 공채.. "코딩 실력만 본다" 카카오 "코딩 능력만으로 2018 신.. 2021. 8. 15.
[JAVA] 프로그래머스 Lv.2 : [3차] 파일명 정렬 🔥 2018 KAKAO BLIND RECRUITMENT 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img.. 2021. 8. 14.
[JAVA] 프로그래머스 Lv.2 : 스킬트리 🔥 Summer/Winter Coding (~2018) 예제: skill skill_trees return "CBD" ["BACDE", "CBADF", "AECB", "BDA"] 2 제한 조건: 스킬은 알파벳 대문자로 표기하며, 모든 문자열은 알파벳 대문자로만 이루어져 있습니다. 스킬 순서와 스킬트리는 문자열로 표기합니다. 예를 들어, C → B → D 라면 "CBD"로 표기합니다 선행 스킬 순서 skill의 길이는 1 이상 26 이하이며, 스킬은 중복해 주어지지 않습니다. skill_trees는 길이 1 이상 20 이하인 배열입니다. skill_trees의 원소는 스킬을 나타내는 문자열입니다. skill_trees의 원소는 길이가 2 이상 26 이하인 문자열이며, 스킬이 중복해 주어지지 않습니다. So.. 2021. 8. 12.
[JAVA] 프로그래머스 Weekly 2 : 상호 평가 🔥 Weekly Challenge : 2주차 대학 교수인 당신은, 상호평가를 통하여 학생들이 제출한 과제물에 학점을 부여하려고 합니다. 아래는 0번부터 4번까지 번호가 매겨진 5명의 학생들이 자신과 다른 학생의 과제를 평가한 점수표입니다. No. 0 1 2 3 4 0 100 90 98 88 65 1 50 45 99 85 77 2 47 88 95 80 67 3 61 57 100 80 65 4 24 90 94 75 65 평균 45.5 81.25 97.2 81.6 67.8 학점 F B A B D 위의 점수표에서, i행 j열의 값은 i번 학생이 평가한 j번 학생의 과제 점수입니다. 0번 학생이 평가한 점수는 0번 행에담긴 [100, 90, 98, 88, 65]입니다. 0번 학생은 자기 자신에게 100점, 1번 .. 2021. 8. 11.
[JAVA] 프로그래머스 Lv.2 : [3차] n진수 게임 🔥 2018 KAKAO BLIND RECRUITMENT 입력 형식: 진법 n, 미리 구할 숫자의 갯수 t, 게임에 참가하는 인원 m, 튜브의 순서 p 가 주어진다. 2 ≦ n ≦ 16 0 < t ≦ 1000 2 ≦ m ≦ 100 1 ≦ p ≦ m 출력 형식: 튜브가 말해야 하는 숫자 t개를 공백 없이 차례대로 나타낸 문자열. 단, 10~15는 각각 대문자 A~F로 출력한다. 예제: n t m p result 2 4 2 1 "0111" 16 16 2 1 "02468ACE11111111" 16 16 2 2 "13579BDF01234567" Solution #1 class Solution { public String solution(int n, int t, int m, int p) { StringBuilder.. 2021. 8. 3.
[JAVA] 프로그래머스 Weekly 1 : 부족한 금액 계산하기 🔥 Weekly Challenge : 1주차 예제: price money count result 3 20 4 10 제한 사항: 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 count : 1 ≤ count ≤ 2,500, count는 자연수 Solution #1 class Solution { public long solution(int price, int money, int count) { long sum = 0; while (count != 0) { sum += price * count; count--; } long result = sum.. 2021. 8. 2.
자바의 객체 지향적 특징 (1) - 상속(Inheritance) INTRO 객체 지향 언어의 특징 중 하나는 상속(Inheritance)입니다. 이것만큼 워딩 그대로 그 뜻을 잘 표현하는 것은 없는 것 같습니다. 상속은 말 그대로 한 클래스가 다른 클래스의 속성(메서드 및 필드)을 획득하는 것입니다. 보통 다른 클래스의 속성을 받는 클래스를 하위 클래스(자식 클래스), 특성을 주는 클래스를 상위 클래스(부모 클래스)라고 합니다. 상속을 이용하면 상위 클래스의 속성을 재사용하여 반복된 코드 중복을 줄일 수 있습니다. 하지만 객체 간의 속성과 관계를 잘 고려하여 상속을 이용하고, 구조를 설계하는 것이 중요합니다. 무분별한 상속은 오히려 객체 간의 결합도를 높여 유지보수와 수정이 어려워질 수 있습니다. extends 키워드 extends는 클래스의 속성을 상속하는 데 사용.. 2021. 7. 14.
안드로이드 앱의 기본 구성 요소 (INTRO) 안드로이드의 구성 요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점입니다. 각 구성요소는 나름의 생명주기를 가지고 있기 때문에 각자의 목적을 수행하고, 생성과 소멸을 정의합니다. 앱의 기본 구성요소는 안드로이드 앱 개발을 할 때, 필수적으로 알아 둬야 하고, 목적에 맞게 구성 요소를 생성해야 합니다. 각 구성요소(Activity, Service, BroadCast Receiver, Content Provider) 에 대하여 간단하게 알아보려고 합니다. Activity Activity는 사용자와 상호작용하기 위한 진입점입니다. 사용자 인터페이스와 화면(UI)을 포함하고 있기 때문에 setContentView(View)을 이용하여 UI를 배치하는 창을 생성할 수 있습니다. 우리가 보통 보는 앱의 화면이.. 2021. 7. 8.
[JAVA] 프로그래머스 Lv.2 : 짝지어 제거하기 🔥 2017 팁스타운 예제: s result baabaa 1 cdcd 0 제한 사항: 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. Solution #1 import java.util.Stack; class Solution { public int solution(String s) { char[] array = s.toCharArray(); Stack stack = new Stack(); for (char c : array) { if (!stack.isEmpty() && c == stack.peek()) { stack.pop(); } else{ stack.push(c); } } return stack.isEmpty() ? 1 : 0; } } Result #1 M.. 2021. 6. 23.