목록전체 글 (232)
거인의 코딩일지
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bQXqfb/btr8MroPLBd/lBPwQlwd4oX2wXwjHwk0q0/img.png)
LIst 란? 자료들을 순차적으로 나열한 자료구조로 인덱스로 관리되며, 중복해서 객체 저장 가능하며 구현 클래스로 ArrayList와 Vector, LinkedList가 있다. List계열 주요 메서드! List 의 종류 LIst의 종류로는 ArrayList, Vector, LinkedList 가 있다. 1. ArrayList 란? - List의 후손으로 초기 저장용량은 10으로 자동설정되며, 따로 지정도 가능하다. - 저장용량을 초과한 객체들이 들어오면 자동으로 늘어나며 고정도 가능하다. - 동기화(Synchronized)를 제공하지 않는다. 🡪 동기화란? - 하나의 자원(데이터)에 대해 여러 스레드가 접근 하려 할 때 한 시점에서 하나의 스레드만 사용할 수 있도록 하는 것 2. Vector 란? - ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/uJXpF/btr8LNFQpsB/ivB1rKotNSi7JavAk8Lz7k/img.png)
컬렉션(Collection) 이란? 메모리상에서 자료를 구조적으로 처리하는 방법을 자료구조라고 하는데 Collection은 자바에서 제공하는 자료구조를 담당하는 프레임 워크이다. 추가, 삭제, 정렬 등의 기능처리가 간단하게 해결되어 자료구조적 알고리즘을 구현할 필요가 없다. java.util 패키지에 포함되며, 인터페이스를 통해 정형화된 방법으로 다양한 컬렉션 클래스를 이용가능하다. 컬렉션의 장점! (배열과 비교!) 1. 저장하는 크기의 제약이 없다. 2. 추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결된다. - 자료를 구조적으로 처리 하는 자료구조가 내장되어 있어 알고리즘 구현이 필요 없음 3. 여러 타입의 데이터가 저장 가능하다. - 객체만 저장할 수 있기 때문에 필요에 따라 기본 자료형을 저장해..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nXCIb/btr8LisqNj8/t3BRPcWlPZgCpUPphKKSPk/img.png)
class Solution { public long solution(int price, int money, int count) { long answer = -1; long all = 0; for(int i = 1; i all){ answer = 0; }else{ answer = all-money; } return answer; } } 처음에는 all 이라는 변수를 int로 설정하고 실행했지만 몇개는 맞고 몇개는 틀려서 long로 바꿔서 통과했다 아무 생각 없이 int 로 변수를 선언했지만 int 크기를 넘어가는 수가 생기기 떄문에 long 가 맞는 설정이다! Lv.1 치곤 생각보다 스무스하게 넘어갔다 화이팅하자!!
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/k5weU/btr63mhHemG/D3dvk1JKjxLRrJ9M9mlP21/img.png)
이 문제는 진짜 2분도 안걸려서 풀어서 뿌듯... ㅎ 문자열의 길이를 구한뒤 곱하기 2를해주어 return 해주면 끝!!! class Solution { public int solution(String message) { int answer = message.length()*2; return answer; } } 물론 결과도 만족~ ㅎㅎ
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bY9iYt/btr6N49HRl9/lK5C9mPYIra2Lr6b4CwKcK/img.png)
제일 작은수를 찾아 제거하고 answer배열에 값을 넣어주고 arr 배열에 값이 하나인 경우에는 배열값에 -1을 담아주어야 하는게 문제였다! class Solution { public int[] solution(int[] arr) { if(arr.length == 1){ int[] answer = {-1}; return answer; } int[] answer = new int [arr.length-1]; int min = 2147000000; int num = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } for(int i = 0 ; i < arr.length; i++){ if(arr[i] != min){ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/8AVa5/btr6DKXMgCd/03oGI1AB8J6pmDbYJOdYx0/img.png)
class Solution { public int solution(int[] numbers) { int answer = -1; int plus = 0; for(int i = 0 ; i < numbers.length; i++){ plus += numbers[i]; } answer = 45 - plus; return answer; } } plus 라는 변수에 numbers 배열의 모든 합을 넣어주었고 1~9까지 더한 값은 45이기에 45에서 배열의 값을 모두 더한 값을 빼주면 answer 이 나온다!
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/byGZea/btr6Cex3VlA/ILDBksCkpkdX5mWoRDtJA0/img.png)
class Solution { public long[] solution(int x, int n) { long[] answer = new long [n]; answer[0] = x; for(int i = 1; i< answer.length; i++){ answer[i] = answer[i-1]+x; } return answer; } } 처음 풀이는 answer 배열 0번째 순서에 x 값을 대입해주고 for 문을 돌려서 x값을 더해주는 풀이 이고 class Solution { public long[] solution(int x, int n) { long[] answer = new long [n]; Long X = new Long(x); for(int i = 0; i< answer.length; i++){ a..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dfWUxo/btr6BgWYwK8/lbJ8P7Fi3WDnw6QucNN5rK/img.png)
class Solution { public String[] solution(String[] quiz) { String[] answer = new String [quiz.length]; // answer의 배열의 길이를 quiz와 동일하게 생성해준다. for(int i =0; i< quiz.length; i++){ String [] arr = quiz[i].split(" "); // 배열을 새로 만들어 quiz배열의 i값을 하나하나 쪼개준다 int n1 = Integer.parseInt(arr[0]); // 첫번째 값 int n2 = Integer.parseInt(arr[2]); // 두번째 값 int n3 = Integer.parseInt(arr[4]); // 결과 값 if(arr[1].equals("+..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ZZzoY/btr6tV660Uz/m1lCEsLMF7KIdaz45BFxt1/img.png)
class Solution { public int solution(int n) { int answer = 0; for(int i = 0; i< n ; i++){ answer++; while(answer%3 == 0|| String.valueOf(answer).contains("3")){ answer++; } } return answer; } } for문을 돌려서 쭉 더해주고 while문을 넣어서 3의 배수거나 3이 포함되면 쭉 더해주는 코드를 작성하여 해결했다. 클리어~
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dBr53h/btr6nWx27Cn/W97q2ewY7sUYVz6y8z1FBK/img.png)
class Solution { public String solution(String[] seoul) { String answer = ""; for(int i =0; i < seoul.length; i++){ if(seoul[i].equals("Kim")){ answer = "김서방은 "+i+"에 있다"; } } return answer; } } 이 문제를 풀면서 한번 틀렸는데 equal() 함수를 사용하지 않고 == 연산자를 사용했기 때문이였다! == 연산자는 두개의 대상의 주소값을 비교하는 반면 equals 메소드는 비교하고자 하는 두개의 대상의 값 자체를 비교하기에 문자열을 비교할 상황에서는 equals 함수를 사용해 주어야 쉽게 풀수있다. 그렇게 사용하고 결과는 통과~ ^^