본문 바로가기

Overall37

CSS 정리하기 정의 Cascading Style Sheet Cascading: 위에서 아래로 연속해서 떨어지는 느낌 세부적으로 정의된 것이 있다면 그것을 쓰고, 없다면 기본적인 것을 쓴다. Author Style: 개발자가 지정한 스타일 (최고 우선순위) User Style: 사용자의 취항에 맞게 정한 스타일 (중간 우선순위) Browser: 기본 스타일 (마지막 우선순위) -> Cascading important 키워드: cascading을 끊어냄 가능하면 쓰지 않는 것이 좋음 선택자 HTML의 어떤 태글르 고를지 정하는 것 * : 모든 태그 tag: 태그의 이름을 가진 것을 고름 #id: id를 고름 .class: class를 고름 [attribute]: 속성을 고름 /* 어떤 태그를 고를지 명시 */ select.. 2020. 9. 21.
HTML 한 페이지에 정리하기 요즘 드림코딩의 엘리님이 하시는 프론트엔드 강의를 듣고 있다. 이제 막 강의 2개를 들어서 강의를 들으며 정리한 것들을 여기에 써놓으려고 한다. HTML (Hypertext Markup Language) 정의 웹을 이루는 가장 기본적인 building block css와 javascript는 웹을 더 풍부하게 만들어주는 부가적인 요소들 Markup Language 태그들을 이용해 어느정도 구조적으로 쓰는 것 구조 // 관습적으로 html임을 알림 // 이 안에 작성되는 것들이 유저에게 보여짐 Heading1 Heading2 Clickable Button w3c 웹의 표준화를 추진하는 곳 w3c에서 정한 표준화에 따라 각 브라우저가 html 태그를 해석함 브라우저는 어느 정도 스스로 에러를 회복해서 콘텐츠.. 2020. 9. 18.
카카오 2020 블라인드 채용 1차 코딩테스트 4번 문제 - 가사 검색 문제 링크: programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr !! 내가 푼 코드는 효율성 테스트를 통과하지 못했다 !! // 카카오 테크 블로그에서 설명해준 바에 따르면 Trie 자료 구조를 사용하면 되는 듯 하다 // trie를 썼다. 효율성 테스트 12는 이제 통과 하는데 3,4,5가 통과되지 않는다 // 아무래도 arraylist 때문인 것 같다. import java.util.*; class Solution { public int[] solution(String[] words, String[] queries) { int[] answer = new int[queries.length]; Trie tr.. 2020. 9. 11.
LearnOpenGL 코드가 실행되지 않을 때 과제에서 2. lighting_6.multiple_lights 3. model_loading 4. advanced_opoengl_6.2.cubemaps_environment_mapping 을 실행했어야 했는데 실행시 오류가 났었다. 그 이유를 간단하게 여기에 적어보려고 한다. 1. github.com/JoeyDeVries/LearnOpenGL 이 곳에서 클론을 했는데 여기에 있는 코드에는 비주얼스튜디오 솔루션이 포함되어있지 않다. --> cmake로 visual studio 솔루션을 만들어주어야 한다. 이 때, 나는 clone한 폴더 아래에 /build/ 디렉토리를 하나 만들어서 솔루션을 만들어 줬다. 2. 솔루션은 만들었는데 ALL_BUILD가 어쩌구 하면서 오류가 났다. --> 여러 프로젝트들이 들어.. 2020. 9. 10.
카카오 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.
딥 워크 by 칼 뉴포트 Deep Work by Cal Neport (민음사) 200824 어제 주문한 책이 오늘 와서 바로 읽어보았다. 오늘은 1부 1장까지만. 머리말 머리말에서는 딥워크가 무엇이고 그것이 왜 중요한지를 이야기한다. 딥 워크 Deep Work: 인지 능력을 한계까지 밀어붙이는 완전한 집중의 상태에서 수행하는 직업적 활동. 딥 워크는 새로운 가치를 창출하고, 능력을 향상시키며, 따라하기 어렵다. (2017 딥 워크, 민음사) 나도 요즘 무언가를 배우기 위해 노력하면서 집중의 중요성을 계속 깨닫고 있다. 그리고 예전보다 한 가지 일에 잘 집중하지 못한다는 사실을 매일 느끼고 있고, 스마트폰과 인터넷이 없는 곳에서 집중하고 싶어 이를 시도한 적도 몇 번 있었다. 다만, 어떤 것을 배울 때 인터넷이 필수로 필요해 그 .. 2020. 8. 24.
데이그램 따라하기 - 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.