분류 전체보기 (180) 썸네일형 리스트형 Q5. firstReverse =================정답=================== public class Solution { public String firstReverse(String str) { // TODO: /* 문자열받아 순서가 뒤집힌 문자열 리턴. // stringbuilder.reverse() 1. str을 매개로 하는 stringbuilder를 만든다. 2. stringbuilder.reverse()를 활용. 3. reverse() 사용 이후, stringbuilder -> string으로 바꾸고 리턴. */ StringBuilder sb = new StringBuilder(str); sb.reverse(); String answer = String.valueOf(sb); return answer; } } Q4. firstCharacter =================정답====================== public class Solution { public String firstCharacter(String str) { // TODO: /* 문자열 입력받아 문자열을 구성하는 각 단어의 첫글자로만 만들어진 문자열 리턴. 1. 문자열들의 단어는 공백 한 칸으로 구분. 2. 연속된 공백 없음 3. 빈 문자열 받으면 빈 문자열 리턴. 1. 공백별로 구분지어서 배열로 만든다. 2. 배열 요소들의 첫 단어를 뽑아서 String으로 합쳐서 리턴한다. */ String answer =""; if ( str.length() == 0) { return str; } String[] arr =.. Q3. powerOfTwo // 마지막 return 이해 안됨 ================정답===================== public class Solution { public boolean powerOfTwo(long num) { /* num을 입력받아 2의 거듭제곱인지 여부 리턴. 1. 짝수가 아니면 false 2. 1,2 나오면 true 3. while문 사용하기 */ boolean answer = true; long two = 2; if ( num == 1 ) { return answer; } if ( num % 2 != 0) { return false; } < 입력받을 num이 2보다 클 경우에만 반복문 실행되며, 반복문이 실행될동안 2를 계속 곱해서 2의 제곱근을 .. Q7. convertListToObject // (!map.containsKey) 이해함 ===========답변================ public class Solution { public HashMap convertListToHashMap(String[][] arr) { // TODO: /* 참고사항 arr[i].length는 0 or 2 라고 나와있음. {}안의 요소가 0개 혹은 2개 라는 말임, 하지만 arr.length(행의 수)는 모름. arr[i][0] : Key arr[i][1] : value 1. 문제대로 HashMap 생성해서 진행. 2. map.put(arr[i][0], arr[i][1]) 넣으면됨. 주의사항 1. 중복되는 키의 경우, 초기의 값 사용 2. 빈 배열을 입력받으면 빈 HashMap을 리턴. */ HashMap map = new HashMap(); //.. Q6. letterCapitalize // uppercase와 substring 의 사용 이해 완료 public String letterCapitalize(String str) { // TODO: /* 문제 접근 방법. 1. str을 "" 기준으로 배열로 나눈다. 2. 나눈 배열의 첫번째 요소들만 대문자로 바꾼다. 3. 나눈 배열을 다시 String 으로 합친다. 4. 리턴한다. 주의사항 : 1. 연속된 공백이 존재한다. 2. 빈문자만 있는 문자열은 빈 문자열을 리턴한다. */ //1. 문자열 str의 길이가 0이라면 빈 문자열을 리턴. if (str.length() == 0) { return str; } //2. str을 공백(" ")을 기준으로 배열로 바꿈. String[] arr = str.split(" "); //3. 리턴하기위해 문자열 result = "" 생성. String result = .. #2-3 자료구조 - Tree 루트(Root)라는 하나의 꼭짓점 데이터를 시작으로, 여러 개의 데이터를 간선으로 연결. 각 데이터를 노드(Node)라고 하며, 두 개의 노드가 상하 계층으로 연결되면 부모/자식 관계를 가진다. [Tree의 노드 관계도] 노드(Node) : 트리 구조를 이루는 모든 개별 데이터 루트(Root) : 트리 구조의 시작점 형제 노드 : 부모가 같은 노드 부모 노드 : 두 노드가 상하관계로 연결되어 있을 때, 상대적으로 루트에 가까운 노드. 자식 노드 : 두 노드가 상하관계로 연결되어 있을 때, 상대적으로 루트에서 먼 노드. 리프 노드 : 트리 구조의 가장 끝 지점이며 자식 노드가 없는 노드. 차수 : 특정 노드가 가지는 자식 노드의 개수. [Tree 용어] 1. 레벨(Level) : 같은 깊이를 가지고 있는 .. #2-2 자료구조 - Graph Graph 자바에는 요소들간에 직접적인 관계가 있을 경우, 두 점 사이를 이어주는 선들이 존재한다. 만약 간접적인 관계라면 몇 개의 점과 선에 걸쳐 이어진다. 이 하나의 점을 정점(Vertex)라고 하고, 하나의 선은 간선 (Edge)라고 한다. 위와 같은 정점들과 간선의 관계를 표현함에 있어 다양한 표현 방식이 있다. 1. [인접 행렬 : Adjacency Matrix] 인접 행렬은 서로 다른 정점들이 인접한 상태인지를 표시한 행렬로 2차원 배열의 형태로 나타낸다. int[][] arr = new [][]{}; A : 0행 B: 1행 C: 2행 arr[0][0] arr[0][1] arr[0][2] => { 0, 0, 1} arr[1][0] arr[1][1] arr[1][2] { 1, 0, 1} arr[.. #2-1 자료구조 - Stack, Queue 자바에서 자료 구조라 함은 여러 데이터의 묶음을 저장하고 사용하는 방법을 정의한 것이다. 위의 자료구조의 종류 중 가장 많이 사용하는 대표적인 4가지. Stack, Queue, Tree, Graph 에 대해 알아보자. 1. [Stack] // ex) 프링글스 통 Stack은 데이터를 넣을 공간을 생성함에 있어 그 공간이 다음과 같은 특이성을 가진다. Stack은 Stack 클래스를 이용해 객체를 생성하여 사용할 수 있다. Stack stack = new Stack(); [1] FILO (선입후출) / LIFO (후입선출) [2] 데이터는 하나씩 넣고 뺄 수 있다. [3] 하나의 입출력 방향을 가지고 있다. [4] 그래프 탐색 중 깊이우선탐색(DFS)에 사용된다. [Stack 메소드] 메소드 기능 예시 ... 이전 1 ··· 15 16 17 18 19 20 21 ··· 23 다음