반응형

분류 전체보기 316

안드로이드 스튜디오: 예외처리하기

어디서나 중요한 예외처리! 그리고 안드로이드, 어플이라면 더욱중요한 예외처리에대해 다룰예정이다. 안드로이드 스튜디오를 예외처리를 하지않는다면... 어플리케이션이 죽어버린다. 여러분들도 휴대폰 어플을 사용했을때 종종 보는 오류일것이다. 예외처리를 하지않으면 이런 사태가 발생한다. 그래서 발생하는 예외를 확인하고 대처하는 방법을 다룰 예정이다. 우선 고의적으로 오류를 뱉어내보겠다. String타입이와야하는 makeText 메소드에 int타입의 정수를 넣어보겠다. 어플리케이션은 죽으면서, 다음과같은 Exception이 나타난다. Resources.NotFoundException 이 나왔으니 이 오류에대해서 잡아주자 try catch 문으로 발생한 오류를 잡아주는 코드를짯다. try부분에서 Resources.N..

[프로그래머스,Java] Level1:크레인 인형뽑기

https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제가 너무길다.. 이번문제는 링크로 띄우겠다. 문제분석: 인형이 담겨진 board와 크레인 이동 move가 입력으로 주어졋다. 크레인이 이동에따라서 인형이담긴 board를 위에서부터 뽑아서 바구니에다 넣을때, 바구니에 들어있는 인형이 2개가 겹치면 사라지게된다. 이 사라진 인형갯수를 세주는문제다. 문제풀이: 문제 그림을보면, 담아두는 바구니가 마치 스택의 자료구조와 흡사하다. 그래서 바..

[프로그래머스,Java] Level1: 소수 찾기

문제분석: 간단하게 1부터 n까지 소수인것을 판별해서 갯수를 반환해주는 문제다. 이 문제는 효율성을 포함하고있다. 너무 쉽다 생각하고 코딩하다가 효율성에 막히게된다. N이 엄청큰 수 100만이상의 소수라면, 혹시, 그 N을 2부터 100만까지 나누어지는지 연산을 100만번 반복시키지않았는가? 이걸 N, N-1,N-2... 까지 계속 반복시키다보면 엄청난 연산이필요하다. 소수판별은 2부터 100만까지 검사할필요가없다. 에라토스테네스의 법칙인 N의 제곱근까지만 판별해도 소수인지 드러난다. 예를들어, 소수 31을 판별하는데, 2, 3, 4, 5 까지만 판별해도된다. 문제풀이: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class Sol..

안드로이드 스튜디오: 버튼으로 토스트(알림) 띄우기

이번 포스팅은 버튼을 누르면 토스트(알림) 띄우는법을 포스팅을 하겠습니다. 우선 버튼을 생성해야한다. 생성하기위해선, res -> layout -> activity_main 파일에서 버튼을 하나 추가합니다. 직접 코드를 짜서 추가해도 되지만, 오른쪽 상단에있는 Design 버튼으로 편리하게 생성할수 있다. 이 화면에서, 버튼, 텍스트상자, 레이팅, 라디오박스 등등 여러가지 구성요소를 추가할수가있다. 여기서 추가만 하면 끝인가? 아니다! 버튼들의 위치를 설정해줘야한다. 겉보기엔 위치가 설정되어 보이지만 위젯간의 위치관계가 기본적으로 설정이 안되어있다. 이럴땐 Infer Constraints 버튼을 누르면된다. 요렇게 생긴 버튼을누르면 알아서 위치를 정해준다. 버튼과 위치를 설정했다면, 버튼을 누르고 토스트..

[프로그래머스,Java] Level1:없는 숫자 더하기

문제분석 0~9 중에서 주어진 numbers에서 숫자중에 없는숫자들을 더하는 문제다. 문제풀이 1 2 3 4 5 6 7 8 9 class Solution { public int solution(int[] numbers) { int answer = 45; for(int data:numbers){ answer-=data; } return answer; } } Colored by Color Scripter cs 너무나도 간단한 문제다 0~9까지 합은 45로 쉽게 도출되고, 45에서 한문자씩 빼주면 답이다

[프로그래머스,자바] Level2: 위클리챌린지 7주차 [입실 퇴실]

문제분석: 처음 읽고 이게 뭘 구현하란거지? 5번은읽어봤다. 정리하자면, 입실시간기록과 퇴실시간기록이 없는 그냥 "순서" 만 있는 배열 Enter와 Leave가 주어졌다. 순서를 보고 각 사람이 반드시 만나는 사람의 수를 구하는문제다. 근데 순서만보고 각 사람이 반드시 만나는 경우가 도대체 무슨소리며, 도대체 어떤 경우인가? 바로, 모두가 들어오자마자 바로 나갔을경우다. 모두가 들어오자마자 나갔는데도, 만난경우가 있다면 기록에 상관없이 무조건 만난다 예시로 입실순서 [1,4,2,3] 퇴실순서 [2,1,3,4]를 예시로 보겠다. 1. 1번이 입실했다. 하지만 퇴실순서가 2번이 먼저니 방에 남는다. room[1] 2. 4번이 입실했다. 하지만 퇴실순서가 2번이 먼저니 방에 남는다. room[1,4] (두 사..

안드로이드 스튜디오 시작하기

안드로이드 스튜디오를 포스팅 할 예정이다. 안드로이드 스튜디오는 모바일 어플리케이션을 만들기위해 탄생하였다. 우선 안드로이드 스튜디오를 설치하기위해!! 아래 사이트를 통해서 다운을 받자. https://developer.android.com/studio?hl=ko&gclid=Cj0KCQjwm9yJBhDTARIsABKIcGbho9-MUizW3LeRDHw-auG6zWIeNoFAznZNDX5b5x_xaerJQ_N7ruEaAiPQEALw_wcB&gclsrc=aw.ds

[프로그래머스,자바] Level1:위클리 챌린지 6주차 [복서 정렬하기]

문제분석: 복서간의 경기기록이 주어지고, 경기기록에의해 나오는 정보(몸무게, 승률,자신보다 몸무게가큰 선수와의 승리,번호) 를 이용하여 지정정렬하는 문제입니다. 이게왜 Leve1이지???; 문제풀이 지정정렬하기 위해선 각 복서마다 정보가 4개 (번호,승률,자신보다 몸무게가큰 선수와 승리수,몸무게)가 필요하다. 이걸 효율적으로 사용하기위해, 새로 Boxer클래스를 생성하고 4개의변수를 생성했다. 변수를 초기화하고, 생성자를 생성해 생성자주입으로 코딩하였다. 10~40줄까지 복서를 순회(1차반복)하면서, 4개의 정보를 저장하기위한 변수를 초기화한다. 복서의 승리기록(2차반복)을 순회하면서 승률과 자신보다 무거운복서를 승리한횟수를 저장한다. 반복이 모두끝나고 4개의 정보를구했다면, list에 Boxer를 저장..

자주쓰이는 스프링 테스트코드 정리글

스프링으로 테스트코드를 쓸때 JUnit과 AssertJ의 Assertions 기능을 많이쓰고, Assertions에서 많이 쓰이는 기능들 위주로 글을 써보려고한다. Assertions.assertThat(??).isEqualTo(??); 이 Assertions는 org.assertj.core.api.Assertions 클래스다 실수하지말자. assertThat메소드가 여기에들어있다. ?? 안에는 타입형 객체가 들어간다. 테스트코드중 단골로 쓰는 테스트방식이다. assertThat()으로, 비교할 대상을 설정하고 isEqualTo()로 사용자가 생각하는 값을 비교한뒤 그게 맞는지 검사하는 테스트다. 예를들어, 내가 10만원 상품의 가격을 Discount메소드로 10% 할인을 적용한값 Value값을 테스트하..

반응형