본문 바로가기

분류 전체보기239

[프로그래머스 *Java] - 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한시간 : 30분 이내 일반적인 탐색문제다. BFS 로 접근해서 풀었다. import java.util.*; class Solution { static int row, col; static class Point { int x; int y; int distance; public Point(int x, int y, int distance) { this.x = x; this.y = y; this... 2022. 7. 11.
[프로그래머스 *Java] - 가장 큰 수 (순열로 접근x -> 런타임 에러 발생) https://school.programmers.co.kr/learn/courses/30/lessons/42746# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한시간 : 30분 그냥 간단하게 생각을 했었다. 문제를 보고서 순열로 값을 만들어서 max 값 비교를 통해서 결과 값을 출력하려 했다.. 하지만? 일단 런타임 에러 발생으로 접근을 잘못했다고 판단하였다. 순열의 시간 복잡도는 n! 따라서 아래에 문제에서 언급한 길이 값을 순열로 만들 시? 최악의 상황은 100000! 이 나오게 된다. numbers의 길이는 1 이상 100,000 이하입니.. 2022. 7. 9.
[Kotlin IN ACTION] - Kotlin 스마트 캐스트 2.3.5 스마트 캐스트 : 타입 검사와 타입 캐스트를 조합 (1 + 2) + 4 라는 간단한 산술식을 계산하는 함수를 만들어보자. 식을 트리구조로 저장할 것이다. 노드는 합계(Sum) 나 수(Num) 중 하나다. Num은 항상 말단 노드지만, Sum 은 자식이 둘 있는 중간 노드다. Sum 노드의 두 자식은 덧셈의 두 인자다. Expr 인터페이스에는 두 가지 구현 클래스가 존재한다. 따라서 식을 평가하려면 두 가지 경우를 고려해야 한다. 어떤 식이 수라면 그 값을 반환한다. 어떤 식이 합계라면 좌항과 우항의 값을 계산한 다음에 그 두 값을 합한 값을 반환한다. [Java] // [Java] - 식을 표현하는 클래스 계층 interface Expr {} class Num implements Expr { .. 2022. 7. 9.
[안드로이드] - Android Platform 안드로이드 플랫폼 아키텍처 Linux Kernel 하드웨어 장치를 구동하기 위한 장치 사용되는 언어 : C(90%이상) 외에 나머지(10% 정도) 아키텍처 의존적인 코드인 어셈블리어로 되어있음. 아키텍처 : x86, ARM(저전력), MIPS .... 운영체제의 기본 서비스 스케줄링 메모리관리 파일관리 ... 등 프로세스간 통신(Binder List, Text box, button 및 dialog 등 UI 셋팅 Managers Activity Manager : Andorid 애플리케이션의 수명 주기를 관리 Window Manager : 윈도우의 모양이나 크기 등을 관리 Resource Manager : 애플리케이션에게 파일, 그래픽 등의 자원 할당 Package Manager : Android는 패키지로.. 2022. 7. 9.
[프로그래머스 *Java] - 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한 시간 : 45분 (성공) 한 번 풀었던 문제고, 전에 풀면서 삽질을 굉장히 많이했던 문제라 빠르게 접근해서 풀었다. 전에 풀었던 방식은... ArrayList, List 를 가지고 정렬 후 제거, 삽입을 반복했는데 시간초과가 났고, 이후에 heap 문제인 걸 알고, 직접 heap 을 구현해서 풀었는데도 시간초과가 났었다. 우선순위 큐를 이용하면 내부 동작이 최대힙으로 구현되어 정렬되기 .. 2022. 7. 7.
[컴퓨터 구조] - 레지스터와 메모리 차이 레지스터와 메모리는 프로세서가 직접 엑세스 할 수 있는 데이터를 보유하고 CPU의 처리 속도를 향상시킵니다. 레지스터 레지스터는 CPU의 데이터 처리 속도를 높이기 위해 도입되었다. CPU의 데이터 처리속도에 큰 영향을 미치는 요소 중 하나가, Memory access time 다. CPU가 메모리에 직접 접근해서 데이터를 꺼내오는 것이 오래 걸렸다. 그래서 나온 게 레지스터다. CPU가 원하는 데이터를 메모리에서 미리 꺼내서 레지스터에 저장 한다. CPU가 원할 때마다 레지스터에 데이터를 꺼내고 처리한다. 레지스터와 메모리의 기본적인 차이점 레지스터는 CPU칩 내부에 존재하며, 직접적으로 ALU(산술논리연산장치)에 연결되어 입출력 값을 저장하는 역할을 한다. 반면 RAM은 일반적으로 CPU와 별도로 A.. 2022. 7. 6.
[안드로이드] - Android Design pattern (MVC, MVP, MVVM) MVC Flow(동작방법) 사용자의 Action 이 Controller 에 들어온다. Controller 는 사용자의 Action 을 확인하고, Model 을 업데이트한다. Controller 는 Model 을 나타내줄 View 를 선택한다. View 는 Model 을 이용하여 화면을 나타낸다. 특징 Controller 는 여러 개의 View 를 선택할 수 있는 1:N 구조이다. Controller 는 View 를 선택할 뿐 직접 업데이트 하지 않는다. (즉, View 는 Controller 를 모른다.) View 와 Model 을 완벽하게 분리하고, Model 테스트가 용이하다. 단점 Controller 가 Android API 에 종속되어 테스트가 어렵다. View 를 변경하면 Controller 도.. 2022. 7. 6.
[프로그래머스 *Java] - 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한 시간 45분 45분 이내에 풀지 못했다. 30분 전에 일단 문제를 풀긴 했지만, 계속해서 '맞왜틀 ' 루프에 빠져서 시간만 까먹다가 끝났다... 로직 설계를 잘했는데, 문제를 꼼꼼하게 읽지 않아, 로직 빈틈이 생겼었다. 기능이 앞에 있는 기능보다 먼저 개발될 수 있을 때, 기능 앞에 있는 기능 배포될 때 함께 배포된다는 이 말을 무조건 뒤에 있는 작업 수행 시간(초)를 비교를 해줘서 틀.. 2022. 7. 5.