분류 전체보기
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
문자열 내 p와 y의 개수대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.예를들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return합니다.제한사항문자열 s의 길이 : 50 이하의 자연수문자열 s는 알파벳으로만 이루어져 있습니다.입출력 예sanswerpPoooyYtruePyyfalse입출력 예 설명입출력 예 #1 'p'의 개수 3개, 'y'의 개수 3개로 같으므로 true를 return 합니다.입출력 예 #2 'p..
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
문자열 다루기 기본문자열 s의 길이가 4혹은 6이고, 숫자로만 구성되있는지 확인해주는 함수, solution을 완성하세요. 예를들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.제한 사항s는 길이 1 이상, 길이 8 이하인 문자열입니다.입출력 예sreturna234false1234true class Solution { public boolean solution(String s) { boolean answer=false; if (s.length() == 4 || s.length() == 6) { if (isNum(s)) { answer=true; } else{ answer = false; } } return answer; } public static boolean isNu..
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
같은 숫자는 싫어배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 배열 arr에서 제거 되고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를들면arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.제한사항배열 arr..
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
가운데 글자 가져오기단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.재한사항s는 길이가 1 이상, 100이하인 스트링입니다.입출력 예sreturnabcdecqwerwe class Solution { public String solution(String word) { int a = word.length(); if (a % 2 == 0) { return word.substring(a / 2-1, a / 2 + 1); } else { return word.substring(a/2,a/2+1); } } }
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
문자열 내림차순으로 배치하기문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항● str은 길이 1 이상인 문자열입니다.입출력 예sreturnZbcdefggfedcbZ import java.util.ArrayList; import java.util.Collections; import java.util.List; class Solution { public String solution(String s) { List list = new ArrayList(); for (int i = 0; i
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
출처: Do it! 자료구조와 함계 배우는 알고리즘 입문 자바편
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
int aa[] = {0,0,0}; int bb[] = aa; int cc[] = aa.clone(); bb[1]=3; cc[1]=5; System.out.println(Arrays.toString(aa)); System.out.println(Arrays.toString(bb)); System.out.println(Arrays.toString(cc)); bb는 aa배열을 참조하고 cc는 aa배열을 복사한다.(clone 메서드 사용) 이때 출력 결과는 다음과 같다. aa [0, 3, 0]bb [0, 3, 0]cc [0, 5, 0] 이와 같이 나오는 이유는 1. bb는 aa의 주소를 참조하기 때문에 bb[1]=3 으로 수정했을때 aa도 변하게 된다. 즉, aa, bb 배열이 2개가 아니라 1개의 배열을 2개..
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
Set List컬렉션과는 다르게 일반적으로 저장 순서가 유지되지 않음(LinkedHashSet 예외). 객체를 중복 저장 불가하고 하나의 null만 저장 가능. 수학의 집합과 같은 개념이다. Iterator를 이용하여 객체를 가져온다. Set 메소드 1. HashSet- List 인터페이스의 구현 클래스. 해쉬 테이블에 원소를 저장하기 때문에 성능면에서 가장 우수하다. 단, 원소들의 순서가 일정하지 않다. public static void main(String[] args) { Set set = new HashSet(); set.add("홍길동"); set.add("김영수"); set.add("조하아"); Iterator iterator = set.iterator(); // while 루핑 while (..
![](https://tistory1.daumcdn.net/tistory/2882364/skin/images/no-image.jpg)
List 객체를 일렬로 늘어놓은 구조. 객체를 인덱스로 관리하기 때문에 객체 저장시 자동으로 인덱스가 부여됨. 단, 객체 자체를 저장하는 것이 아니라 객체의 번지를 참조한다. List 메소드 1. ArrayList- List 인터페이스의 구현 클래스. 2. LinkedList - ArrayList와 사용방법은 똑같으나 구조는 완전히 다름. ArrayList처럼 인덱스 관리가 아닌 인접 참조를 링크해서 체인처럼 관리. 3. Vector - ArrayList와 동일한 구조. 차이점은 Vector는 동기화된 메소드로 구성되어 있어 멀티스레드가 동시에 메소드을을 실행 불가. 따라서 멀티스레드 환경에서 안전하게 객체를 추가, 삭제 가능 => Thread Safe 구분 순차적 추가, 삭제 중간 추가, 삭제 검색 A..