본문 바로가기

Study Log31

카카오 2020 블라인드 채용 1차 코딩테스트 3번 문제 - 자물쇠와 열쇠 문제 링크: programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 이번 문제는 푸는데 좀 많은 시간이 걸렸다. 처음에는 열쇠의 위아래에 패딩을 붙였는데 잘 되지 않았다. 그래서 두 번째로 생각한 것은 자물쇠에 패딩을 붙이는 것이었다. class Solution { public boolean solution(int[][] key, int[][] lock) { int k_len = key.length; int l_len = lock.length; int k_count = 0, l_.. 2020. 9. 7.
카카오 2020 블라인드 채용 1차 코딩테스트 2번 문제 - 괄호 변환 문제 링크: programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr import java.util.*; class Solution { public String solution(String p) { String answer = ""; String str; // 빈 문자열이거나 올바른 문자열일 경우 그대로 반환 if(p.length() == 0 || isCorrect(p)) return p; str = toBalanced(p); //.. 2020. 9. 5.
카카오 2020 블라인드 채용 1차 코딩테스트 1번 문제 - 문자열 압축 문제 링크: programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr // 통과 import java.util.*; class Solution { public int solution(String s) { int answer = s.length(); for(int i = 1; i 1){ compLength = compLength - (count-1)*i; compLength += unitNum(count); count = 1; .. 2020. 9. 4.
데이그램 따라하기 - 4. Realm DB 메모 리스트 저장 및 출력 구현 - Realm DB Realm DB - 모바일 사용에 최적화된 내장 데이터베이스 라이브러리 - NoSQL DB를 지향 - 모델 구조 자체가 객체로 구성되어 있고 자체의 API를 통해 실행된다 - 클래스 객체의 멤버 변수 값을 저장한다고 생각하면 된다고 한다. - 장점: 직관적인 사용, 빠른 데이터 처리 속도 - 단점: 자체 사용법을 익혀야 함 - 서버에서 사용시 실시간 동기화가 가능함 - 테이블 구조가 아님 [안드로이드 스튜디오에서 사용 방법] 1. 프로젝트 수준의 build.gradle에 dependency 추가 buildscript { repositories { jcenter() } dependencies { classpath "io.realm:realm-gradle-.. 2020. 8. 19.
데이그램 따라하기 - 3. 커스텀 리스너 인터페이스 하단 네비게이션바 만들기 (2) 커스텀 리스너 인터페이스 공부한 것 정리 리사이클러뷰 외부에서 아이템 클릭 이벤트 처리 1. 어댑터에서 이벤트 리스너 인터페이스를 작성한다. // 1. 커스텀 인터페이스 정의 public interface OnItemClickListener{ void onItemClick(View v, int pos); } // 2. 리스너 객체를 전달하는 메소드와 전달된 객체를 저장할 변수 추가 private OnItemClickListener mListener = null; public void setOnItemClickListener(OnItemClickListener listener){ this.mListener = listener; } // 3. 아이템 클릭 이벤트 핸들러 메소드.. 2020. 8. 19.
데이그램 따라하기 - 2. RecyclerView 다루기 [하단 네비게이션바 만들기 (1) RecyclerView 다루기] 공부한 것 정리 ButterKnife 라이브러리: 뷰를 보다 편리하게 바인딩할 때 사용된다. - 라이브러리를 사용하기 위해서는 build.gradle(Module:app)파일에 dependency를 추가해야 한다. (추가한 후 sync를 해야 적용된다.) implementation 'com.jakewharton:butterknife:8.6.0' - gradle에 추가한 후 사용하려는 액티비티와 버터나이프를 바인드해준다. (레이아웃과 java파일을 연결해주는 setContentView( )함수 아래에서 바인드해야 한다.) // 이 예시의 경우 MainActivity.java 아래에 있는 onCreate함수이다 @Override protect.. 2020. 8. 9.
데이그램 따라하기 - 1. 사용되는 xml 만들기 [사용되는 xml 만들기] 사용되는 레이아웃 종류 1. Linear Layout - 오브젝트(or 뷰)들을 리니어하게 정렬하여 보여주는 레이아웃 - android.widget.LinearLayout에 속함 - android:orientation : "horizontal"이나 "vertical로 설정할 수 있다. 설정하지 않으면 기본은 horizontal인듯 - android:gravity : 포함한 뷰들을 어떻게 정렬시킬지 설정해둔다. ex) center 관련 api 문서 링크: https://developer.android.com/reference/android/widget/LinearLayout 2. Frame Layout - 여러 오브젝트(or 뷰) 중 하나를 전면으로 내세워서 보여주고 싶을 때 사.. 2020. 8. 6.