반응형 전체 글1036 프로그래머스 폰켓몬(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 폰켓몬 언어 : 자바(Java) int nums 배열을 받는데 여기서 다른 값을 최대 몇 종류까지 가져올 수 있냐는 얘기다 종류의 한계는 nums.length / 2를 해주면 간단히 가져올 수 있다 내 풀이방법은 아래와 같은데 먼저 set에 nums 배열을 다 담아주는데 set은 중복을 허용하지 않기 때문에 동일한 값을 넣을 경우 하나만 들어간다 즉 최대 종류를 파악하는 문제기 때문에 중복 값은 필요가 없다는 얘기다 이후 set.size가 nums.length를 절반으로 나눈 값보다 크다면 절반만 반환할 수 있으므로 nums.length / 2를 반환하고 그렇지 않을 경우 모두 반환이 가능하므로 answer를 set.size로 한 뒤 반환하면 된.. 2019. 9. 29. 이클립스 실행 시 로고만 잠깐 나오고 실행 안되는 경우 이클립스 실행 시 로고가 1초정도 잠깐 나왔다가 사라지고 이클립스가 실행되지 않는 경우가 있는데 원인은 여러 가지겠지만 내 경우에는 JDK를 다시 설치하니 이클립스 실행이 되지 않더라 어쨌든 해결하는 방법은 이클립스가 있는 폴더로 이동한 후 eclipse.ini 파일을 메모장으로 실행해 보자 11번째 줄 아래에 -vm javaw.exe 까지의 경로를 지정해주면 되는데 C:\Program Files\Java\jre1.8.0_73\bin\javaw.exe 이런 식으로 입력해 주고 저장한 뒤 이클립스를 실행하면 동작이 잘 된다 2019. 9. 25. 자바에서 문자열 비교 시 == 가 아닌 equals를 써야하는 이유 자바를 처음 사용하다보면 대부분이 처음에 겪는 상황인데 문자열을 비교할 때 .equals가 아닌 ==를 쓰다가 위기에 처하게 된다 보면 String a와 b가 분명 동일하게 A를 줬음에도 a와 b가 같냐고 물어보면 다르다고 한다 A가 아니라 B라도 썼다는 말인가? 대체 원인을 몰라 삽질을 하다가 물어보면 java에서는 문자열을 비교할 때 ==가 아니라 equals를 쓰라고 하는데 궁금한 것은 왜 ==는 안되고 equals는 되냐는 거다 그리고 이 예제에서는 둘다 A를 주고 A와 B가 같냐? 라고 비교해 보니 같다고 하는데 이건 뭐지? 자바 버그인가? 이제부터 왜 ==가 아니라 equals를 써야하는지 알아보자 System.identityHashCode(변수명); 을 통해 작성한 변수가 실제 메모리 내 어.. 2019. 9. 25. 프로그래머스 예산(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 예산 언어 : 자바(Java) 문제를 잘못 이해해서 한참 고민했는데 막상 보니까 문제 설명에 비해 핵심이 단순했다 예산 안의 범위에서 최대 몇개의 부서(d)를 지원해 줄 수 있냐는 문제였는데 budget을 반드시 다 써야된다는 게 아니라 budget 안에서 최대 몇개의 d 배열의 값을 소모할 수 있냐는 말이다 내 풀이방법은 아래와 같은데 먼저 배열을 오름차순으로 정렬시켜 주는데 이러면 작은 값이 앞에, 큰 값이 뒤에 위치하게 된다 for문을 돌리면서 answer에 배열 값을 계속 더해주는데 여기서 answer의 값이 budget보다 커지게 된다면 for문을 돌린 횟수를 넣고 반환한다 for문이 끝나도록 budget의 값을 넘기지 않았다면 돌린 횟.. 2019. 9. 24. 프로그래머스 x만큼 간격이 있는 n개의 숫자(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : x만큼 간격이 있는 n개의 숫자 언어 : 자바(Java) x와 n을 받아서 x를 1부터 n까지 곱한 값을 배열에 쫙 넣으면 되는 문제인데 보면 간단해 보이겠지만 아마 문제 풀다가 마지막 2개의 테스트에서 막히는 경우가 좀 있을텐데 내 풀이방법은 아래와 같다 보면 그냥 n의 크기로 배열을 만든 뒤 x를 1부터 곱해가면서 answer 배열에 착착 넣어주면 될 것 같은데 마지막 두 테스트에서 틀리는 이유가 값을 long 처리해서 넣어주지 않아서 그런 경우가 많을텐데 왜 마지막 두 테스트에서 틀리냐면 int 값의 범위를 넘어서는 경우에 처리를 못해줘서 틀려서 그렇다 여기서 long으로 처리를 해 주면 범위를 넘어서는 경우가 나오지 않고 해결 가능하다 마.. 2019. 9. 24. 프로그래머스 행렬의 덧셈(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 행렬의 덧셈 언어 : 자바(Java) 행렬의 덧셈 문제는 2차원 배열 두개를 받아서 배열의 동일한 행과 열끼리 더한 값을 반환하라는 것이다 두 배열의 행과 열은 항상 같기 때문에 더할 방법만 생각해내면 된다 내 풀이방법은 아래와 같은데 for 문을 두번 돌리는데 for 문 하나는 행, for 문 하나는 열 개념이다 두 배열의 행[0]열[0] 행[0]열[1] 을 더하고 행이 올라가야 하는 만큼 열을 증가시킬 때 answer 배열에 답을 넣어주는 것이다 이후 배열의 크기에 맞춰 반복문을 쭉 돌려주면 끝이 난다 마지막으로 프로그래머스에 바로 적용 가능한 코드는 아래와 같다 class Solution { public int[][] solution(int.. 2019. 9. 24. 이전 1 ··· 160 161 162 163 164 165 166 ··· 173 다음 반응형