본문 바로가기

Java/연습문제19

[JAVA] firstReverse 문제: 문자열을 입력받아 순서가 뒤집힌 문자열을 리턴 public class Main { public static void main(String[] args) { //배열 arr 만들기 char[] arr = str.toCharArray(); //뒤집힌 걸 받을 배열 만들기 char[] rv_arr = new char[arr.length]; //for문을 사용해서 rv_arr에 arr의 문자열을 역순으로 받음 for (int i = 0; i < arr.length; i++) { rv_arr[arr.length - 1 - i] = arr[i]; } String rv_Str = new String(rv_arr); return rv_Str; } } StringBuilder을 이용한 방법 StringBuilde.. 2022. 10. 21.
[JAVA] 선입선출 상자포장 최대값 들어온 순서대로 선입선출 포장 조건 1.동시에 최대 몇 명이 나갈 수 있는지? 2.맨 앞의 수보다 크면 나가지 못함 3.앞의 수보다 작으면 같이 나감 방법 1. for문을 사용해 배열에서 앞의 수보다 같거나 작은 경우가 나오면 배열을 나눠 따로 저장 (for문 2개 이상 사용) -> 코드가 너무 복잡해져서 방법 바꿈 2. while과 for문을 사용해서 구현 /* 조건 들어온 순서대로 선입선출 포장 동시에 최대 몇 명이 나갈 수 있는지 맨 앞의 수보다 크면 리턴되지 못하고 앞의 수보다 작으면 같이 리턴됨 */ package com.codestates.coplit; import java.util.*; public class Solution { public int paveBox(Integer[] boxes).. 2022. 10. 21.
[JAVA] 브라우저 앞,뒤로 가기 출력 과정 -1 (PREV) A [A,B] [A] [A,B] [A,B,D] [A,B] [A,B,D] [A,B] [A] CURRENT A B C B D A D A D B 1 (NEXT) [C] [A] [A] [A,D] 입력 값 A B C -1 D A -1 1 -1 -1 /* 문제: 브라우저 앞으로 가기와 뒤로 가기 만들기 조건 새 페이지에 접속: prev에 원래 / next 비움 뒤로가기: 원래 페이지를 next / prev 스택의 top으로 이동 -> prev값을 pop 앞으로 가기: 원래 페이지 prev / next 스택의 top로 이동 -> next값을 pop 뒤로가기 앞으로 가기 불가: push 안 함 첫글자에 알파벳 대문자가 아니면 false 리턴 주의사항 1. 뒤로가기 : -1, 앞으로가기 : .. 2022. 10. 21.
[JAVA] 문자열의 첫 글자 구하기 public class Solution { public String firstCharacter(String str) { // 빈 문자열은 빈 문자열 리턴 if (str.length() == 0) return ""; //split(): 구분자를 기준으로 배열형식의 문자열을 잘라줌 //words 배열을 " "를 기준으로 자름 String[] words = str.split(" "); String result = ""; //charAt(): 문자열 중 한글자만 선택해 char 타입으로 변환 //for문을 사용해 result에 words의 단어 중 첫 글자만 가져옴 for (int i = 0; i < words.length; i++) { result = result + words[i].charAt(0); } r.. 2022. 10. 21.
[JAVA] 2의 거듭제곱인지 확인 package com.codestates.coplit; import java.util.*; public class Solution { public boolean powerOfTwo(long num) { //2의 n승이면 true if (num == 1) return true; //2의 n승이 아니면 false 리턴 if (num % 2 != 0) return false; //2의 n승을 구해주는 powered long powered = 2; while (powered < num) { powered = powered * 2; } return powered == num; } } 2022. 10. 21.
[JAVA] Json 페어 문제 JSON? JavaScript Object Notation -> 데이터 교환을 위해 만들어진 객체 형태의 포맷 JSON과 JS의 차이 JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함합니다. 문자 반환 재귀함수 문제 페어 풀이 import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.w3c.dom.ls.LSOutput; import java.util.*; public.. 2022. 10. 21.
[JAVA] 원금 2배되는 기간 문제: 원금 2배되는 기간 해결 과정 기간이 되는 것 선언 -> 빠진 것: 연이율, 원금 if문 사용해서 2배가 되는 조건 걺 -> if문이 아니라 while을 사용해서 조건이 만족되면 year을 올려야 됨 -> 조건: 원금*연이율이 2배가 되기 전까지 구현 public class Main { public int computeWhenDouble(double interestRate) { // TODO: double rate = 1 + interestRate / 100; //연이율 double principal = 1; //원금 int year = 0; //기간 while (principal < 2){ principal = principal * rate; year++; } return year; } } 2022. 10. 21.
[JAVA] hashmap을 사용해 배열의 첫 요소와 마지막 요소 받기 hashmap을 사용해 배열의 첫 요소와 마지막 요소 받기 //첫 요소와 마지막 요소 HashMap을 리턴 package com.codestates.coplit; import java.util.*; public class Main { public HashMap transformFirstAndLast(String[] arr) { // TODO: if (arr.length == 0){ return null; } //빈 배열일 때 null 반환 HashMap result = new HashMap (); //결과를 받을 해쉬맵 생성 result.put(arr[0], arr[arr.length -1]); return result; } } `HashMap result = new HashMap ();` 결과를 받을 .. 2022. 10. 21.
[JAVA] 재귀함수 연습 문제 1. 1부터 num까지의 합을 리턴 return num + sumTo(num -1); num에 -1을 빼서 n번째까지 계속 반복 2. 홀수인지 여부 확인 if (num == 0) return false; if (num == 1) return true;return isOdd(num -2) 계속 2씩 빼면서 0이나 1이 나올 때까지 반복 3. n! return num * factorial(num -1); n* n-1 반복 4. 피보나치 수열 return fibonacci(num -1) + fibonacci(num -2); 피보나치(앞에 두 수의 합) 5. 배열의 합 int head = arr[0]; int[] tail = Arrays.copyOfRange(arr, 1, arr.length); return h.. 2022. 10. 21.
728x90