반응형

분류 전체보기 316

[프로그래머스,자바] Level2: 튜플

문제분석 문제를 잘 이해해야한다. 입력으로 튜플의 집합들이 주어진다. 튜플의 집합들은 원래튜플의 원소갯수만큼 존재한다. -> 부모튜플의 원소갯수=4개, 입력으로 주어지는 집합갯수 =4개 문제목표: 입력으로 주어지는 튜플집합들을통해, 부모튜플을구하기 튜플은 원소의 순서가 다르면, 다른 튜플이므로 원소들의 순서를 중요시해야한다. 그러면 어떻게 튜플의 원소의 순서를 알수있을까?? -> 입력으로 주어지는 집합들의 길이가 적은순서대로 원소를넣자. (정렬해주기) -> 길이가 1인 집합은 첫번째원소다. -> 길이가 2인 집합은 첫번째원소 + 두번째원소의 형태다. -> 길이가 3인 집합은 길이가 2인집합 +세번째원소다. ... 자동으로 알아서 중복을 제거해주고 입력 순서대로 나열해주는 Set배열이 아주 찰떡궁합이다. ..

안드로이드 Thread (1)

쓰레드 이전에 멀티 태스킹에 대해 알아야한다. 멀티태스킹이란? 하나의 응용프로그램이 여러작업을 동시에 처리한다. EX) 파일을 다운로드하면서 웹서핑,노래듣기,동영상보기 멀티태스킹엔 멀티프로세스, 멀티 쓰레드가 존재한다. 멀티프로세스: 프로세스와 프로세스 간의 상호작용+ 동시적으로 프로세스 처리 멀티스레드: 하나의 프로세스 안에서 쓰레드간의 상호작용 + 동시적으로 쓰레드 처리 이번 포스팅은 멀티 쓰레드에대해 다뤄볼것이다. 쓰레드를 하나 생성하려면, 두가지 방법이있다. Java.lang.Thread 클래스를 이용하는 경우 • Java.lang.Runnable 인터페이스를 이용하는 경우 다양한 기능을 안쓰고, 단일 쓰레드를 생성하려면, Thread 클래스를 이용하지만, 다양한 참조를 쓰려면 Runnable 인..

[프로그래머스,Java] Level2: 수식 최대화

문제분석 설명이 길다. 요약하자면, +,-,*연산의 우선순위를 변경해서 최대로 나오는 절댓값 수식을 계산하면된다. //만약 나눗셈까지 포함되어있었으면 24가지.... 나눗셈이빠져서 그나마 6가지다. 하여튼 이문제도, 완전탐색을 돌려야한다. 모든 경우 우선순위 연산을 해보고 Max값을 뽑아야한다. 이 문제는 경우의수가 딱 6개다. *+-,*-+,+*-,+-*,-*+,-+* 단 6가지 따라서, 하나씩 Case를 분류해서 하기로 했다. ->만약 나눗셈까지포함해서 24가지였으면, 순열 알고리즘을사용했을것같다. 문제에서 연산식을 문자열로준다. (expression) 하나의 문자열 덩어리로 입력을 받았기에, 숫자와 연산식을 분간하려면 Split 해주는게 편하다. -> 숫자만 담은 리스트 numbers -> 연산자만..

[프로그래머스,Java] Level2: 거리두기 확인하기

문제분석 카카오는 하나같이 역시 좀 쉽지가않은거같다 맵에는 P(응시자), O(빈 테이블) ,X(파티션)이 존재한다. 규칙1,응시자 사이의 맨허튼거리가 2이면 거리두기를 지키지 않았으므로, 0을 반환해야한다. 규칙2,응시자 사이의 맨허튼거리가 2라도, 사이에 파티션이 있으면 거리두기는 지킨걸로 본다. 우선적으로, 응시자 P를 기준으로 확인해야하니, P일때만 찾는로직을 실행시키면된다. 필자의풀이 그런데 필자는 조금 무식(노가다)하게 풀었다. 이 찾는로직을 Case 상: -> 한번더 상, 좌, 우 Case 하: -> 한번더 하, 좌, 우 Case 좌: -> 한번더 좌 상 하 Case 우: -> 한번더 우 상 하 를 모두 나눠서 빡코딩을했다. 뭐.. 풀긴 풀었지만 창의력에 한계를 느낀것같다. 뭔가더 좋은 방법이..

[프로그래머스,자바] Level2: 뉴스 클러스터링

문제분석 뭔가 겁나많이 복잡한데, 요약하자면 A 집합과 B집합의 합집합과, 교집합을 구한뒤 교집합 갯수/합집합 갯수를 구하면된다. A집합, B집합의 원소는 앞에서부터 2글자씩끊어서생성하고, 글자안에 특수문자가 들어있는경우는 제외한다. 예외) A,B모두 공집합일경우 1반환 풀이접근 -> 교집합을 먼저 구하자 교집합을 먼저구한다면 합집합은 A+B - 교집합 으로 구할수있다. 풀이방식: 1. 집합 A, 집합 B를 구한다. ->두글자씩 끊어서 A,B에저장한다. 2.두글자씩 끊은 원소가 특수문자가 들어있으면 제외한다. ->이 경우는 정규표현식이나 아스키코드를 통해서 제외한다. 3. A와 B의 교집합을구한다. 4. 합집합공식을 사용해 갯수를 구하고 교집합/합집합을 구한다. 5.문제에서 65536곱하라고하니 곱한다...

[프로그래머스,Java] Level2:괄호 변환

문제분석 설명서대로만 하면된다. 이 문제는 설명서대로 정확하게 구현이 가능한지를 묻는다. 1. 빈 문자열이면 빈 문자 반환 ->이거는 간단하다. 2. 문자열 w를 두개의 "균형잡힌 괄호" 분리. -> u는 균형잡힌 괄호문자열이되면 바로 끝, v는 빈 문자열이 될수있음 how? ( 갯수와 )갯수를 각각 세서, 동일해지면 문자열을 분리해서 저장한다. 3.분리한 문자열 u가 올바른 문자열이면 v를 1단계부터 다시 재귀를돌린다. -> 문자열 u뒤에 이어서 재귀를돌린v를붙힌다. how? 올바른지판별은, Stack을 사용해서 판별하자. Pop과 입력값이 같다면 짝이맞으므로 제거하다보면, Stack의 문자열이 0이되는데, 이때가 올바른 괄호가된다. 4.분리한 문자열 u가 올바른 문자열이 아니라면, -> 빈 문자열에 ..

Activity - 쌍방향 액티비티 구현

지난글에는 Intent를 이용하여, 단방향 액티비티 즉 한쪽으로만 정보를 보냈지만 이번에는 서로 주고받는 쌍방향 액티비티를 구현해보겠습니다. 기본적으로 버튼1개와, EditText 2개를 생성합시다. intent는 SecondActivity로 보내고, editText의 정보 2개를 보냅니다. 단방향과 달라진점은 startActivityForResult와, 두번째 파라미터인 requestCode인 점인데요, 이 requestCode는 상호작용하기위한 일종의 Key값이됩니다. 세컨드 액티비티에선 editText로보낸 정보 2개를 getIntExtra로 받습니다. (숫자값을받을거라) getIntExtra는 defaultValue까지 입력해주셔야합니다. 값1과 값2를 받았으면, 버튼을 눌럿을때, 다시 메인 액티..

Activity 추가하기 - Intent

Activity를 추가로 생성하기전에, 안드로이드 4대 컴포넌트에 대해 알아보자. 1.Activity: 화면을 구성하는 가장 기본적인 component • 사용자와의 inter-action • 위젯들의 playground 2.Service 액티비티와 상관 없이 백그라운드에서 동작하는 component • 서버로부터 contents 다운로드 • 멜론/지니 • DB에 저장 • Wi-Fi, BLE 연결 3.Broadcast Receiver • 시스템 event 수신 • 저전력 모드, booting 이벤트, SD 카드 탈부착, Wi-Fi 접속 등 • 다른 application의 메시지 수신 • Application 간의 소통 창구 4.Content Provider • Applications들 간 공유 DB • ..

[프로그래머스,Java] Level2: 피로도 (위클리 챌린지 12주차)

문제분석 RPG 게임에서나 보는 피로도 관련된 문제다. 던전을 도는 조건은 '최소 필요 피로도'를 넘겨야하고, 넘겼다면 '소모 피로도'를 깍아야한다. 아니.. 어느게임이 최소 필요 피로도가 있습니까.. 소모 피로도만 충족하면되지.. 언뜻 보면 쉬워보인다. 그냥.. 최소 필요 피로도가 큰 순서대로 피로도를 먼저 빼면 될것같다. -> 하지만, 만약 [80,80] 이라면 첫번째 던전만 돌고, 2번 3번 던전을 못돈다. -> 차라리, 첫번째 던전을 안돌고 2번 3번을 도는게 피로도 적으로 더 이득이다. 그러면.. 소모 피로도가 적은 순서대로 피로도를 먼저 빼면 되나..?? -> 이러면, 3번 2번 순서대로 던전을 돌텐데 그러면 1번던전을 못간다. -> 모든던전을 도는방법 1, 3, 2로 도는방법이 실제로 있는데..

파이썬 맷플롯(Matplot) 라이브러리

o Matplotlib § 쥬피터 노트북에서 사용 가능한 차트 모듈 맷플롯으로 다양한 시각화 차트를 지원함. 맷플롯 선언 import matplotlib.pyplot as plt 맷플롯 선형 차트 선언 기본적인 사용법 plot(x,y) 0~10 까지 100개의 간격의 수를, x, sin(x)로 그래프를 그린 그림 plot의 다양한기능 -> color 설정 , linestyle 설정, label 설정이가능함. plot의 제목은 title로 통해서 지정할수있다. plt의 xlabel, ylabel로 정보를 나타낼수있다. plt의 xlim, ylim로 그림이 그려지는 크기를 조절할수있다. plt.lengend() 로 범례를 표시한다. plt.tight_layout()으로 그림만 띄울수도있다. 맷플롯 산점도 차..

반응형