전체 글 41

[프로그래머스 JAVA] 배열 자르기

배열 자르기 라는 문제이다주어진 배열에서 주어진 2개의 정수값 사이의 배열을 가지고 오면 된다  처음엔 반복문을 돌려서 배열 값을 잘라내야 하나 싶었는데간단한 메소드들을 활용하면 한줄로 끝낼 수 있었다 먼저 처음엔 copyOfRange 를 활용했다 copyOfRange(배열, 시작값, 끝값) 으로 배열의 시작값과 끝값까지 배열을 잘라내서 복사하는 것이다 두번째는 IntStream 을 활용했다 IntStream.range(시작값, 끝값).map(num -> 배열[num]).toArray()를 쓰면 배열값의 시작값과 끝값까지 새로운 배열로 저장한다  Stream이 활용할 수 있는 곳이 많아 익숙해져야함으로 사용해봤지만코드상으로 봤을때는 copyOfRange 이 훨신 간단하고 간편하다 import java.u..

[JAVA] 2024.07.21

[프로그래머스 JAVA] 대문자와 소문자

주어진 문자열을 대문자는 소문자로, 소문자는 대문자로 변경한 값을 리턴하는 문제이다Character을 다루는 메소드를 알고 있다면 쉽게 풀이할 수 있다   class Solution { public String solution(String my_string) { String answer = ""; for (int i=0; i 주어진 문자열을 반복문에 사용하기 위해 문자열 길이를 구할 것이다length는 배열의 길이, length()는 문자열의 길이를 구할 때 쓴다 Character.isUpperCase 메소드를 사용하여 해당 문자가 대문자인지 확인한다이때 주어진 문자열에서 해당 문자를 charAt() 으로 가져올 수 있다 Character.is- 는 해당 문자가 대문자인..

[JAVA] 2024.06.22

[프로그래머스 JAVA] 숨어있는 숫자의 덧셈 (1)

문자열에서 숫자만을 뽑아낸 총합을 구하는 문제이다  먼저 주어진 문자열 중에 숫자만 골라내서 배열에 넣어주는 작업이 필요하다그리고 반복문으로 모든 값을 더해주면 끝  여기서 관건은 String으로 되어 있는 문자열을 Integer로 형변환을 해줘야 하는 점이다  class Solution { public int solution(String my_string) { int answer = 0; String[] arr = my_string.replaceAll("[a-zA-Z]", "").split(""); for (int i=0; i replaceAll은 해당 값을 치환해주는 메소드이다특정 문자 하나만 치환하는 경우는 replace를 사용해야하지만정규식..

[JAVA] 2024.06.22

[프로그래머스 JAVA] 가위 바위 보

입력받은 문자열을 하나씩 비교하여 가위바위보를 이기는 문자열을 출력하면 된다 class Solution { public String solution(String rsp) { String answer = ""; String[] arr = rsp.split(""); for (int i=0; i  먼저 입력받은 String을 배열로 변경하는 과정이 필요하다 split 을 이용하면 수월하게 배열로 전환이 가능하다  문자열은 + 을 사용해서 더해주면 된다 대신 문자열을 비교할 때는 equals 를 사용해줘야 한다

[JAVA] 2024.06.21

[프로그래머스 JAVA] 짝수는 싫어요

짝수는 싫어용..   주어진 n 값 보다 작은 홀수 값들을 배열로 리턴한다  class Solution { public int[] solution(int n) { int[] answer = new int[(n+1) / 2]; for (int i=1; i 제일 간단하게는 n값 + 1한 값의 나누기 2 보다 큰 배열값이 나올 수 없음으로int[] answer = new int[(n+1)/2] 로 리턴할 배열값을 초기화 한다 그리고 나서 반복문을 돌리면서 홀수값만 배열에 넣어주면 끝    하지만 이제껏 풀이를 해보면서 느꼈듯.. 배열은 stream.. 요 메소드를 사용한 풀이가 무조건 있을 것 같다는 생각이 들었다 그리고 훨신 간단한 코드가 있었다 import java.util...

[JAVA] 2024.06.21

[프로그래머스 JAVA] 중앙값 구하기

주어진 배열값 중에 중앙값을 출력하는 문제이다 반복문을 두번 돌려서 하나씩 체크하는 방법도 있겠지만 그거보단 좀 더 효율적인 방법을 생각해내는 것이 관건으로 보인다  import java.util.Arrays;class Solution { public int solution(int[] array) { int answer = 0; Arrays.sort(array); answer = array[array.length / 2]; return answer; }} Arrays.sort를 활용하면 배열을 오름차순으로 정렬이 가능하다그럼 주어진 배열의 길이만 / 2 한의 배열 값만 가져오면 간단하다    배열 문제는 은 Arrays 라이브러리를 얼마나 잘..

[JAVA] 2024.06.21

[프로그래머스 JAVA] 중복된 숫자 개수

이번 문제 또한 간단하게 풀이 할 수 있는 문제다 배열을 하나씩 확인해서 입력된 값과 같으면 Count +1 만 해주면 끝  class Solution { public int solution(int[] array, int n) { int answer = 0; for (int i=0; i  실행 결과도 성공적이었다    하지만 이제 배열 문제가 나오면 꼭 고민해봐야할 메소드가 생각날 것이다바로 stream() !! 분명 이 메소드를 활용한 풀이법이 있을 것이다 import java.util.Arrays;class Solution { public int solution(int[] array, int n) { return (int) Arrays.s..

[JAVA] 2024.06.20

[프로그래머스 JAVA] 두 수의 나눗셈

주어진 두 수를 나누되 소수점은 유지한 채로 1000을 곱해서그 중에서도 정수 부분만 리턴하는 문제이다  데이터 형변환을 중점적으로 생각해야 할 듯  class Solution { public int solution(int num1, int num2) { return (int) Math.floor((double) num1 / num2 * 1000); }} 먼저 나눗셈과 1000을 곱함과동시에 소숫점 유지를 위해 double 이라는 것을 명시해둔다안그러면 나눗셈에서 소수점이 다 날라간다  그리고 정수 부분만 가져오기 위해 Math.floor 메소드를 사용하여마지막 (int) 형으로 return 하면 끄읏

[JAVA] 2024.06.20

[JAVA][프로그래머스 JAVA] 짝수의 합

정말 간단한 예제인데 왜 헷갈렸지..   주어진 숫자보다 작은 짝수의 값을 더하면 된다생각보다 노가다로 풀었다.. class Solution { public int solution(int n) { int answer = 0; while (n > 1) { if (n % 2 == 0) { answer += n; n = n - 2; } else n = n - 1; } return answer; }} 1보다 큰 경우 계속 반복문을 돌려서나누기 2 한 값의 나머지값이 없는 경우에만 결과에 계속 더해줬다   뭔가 더 간편하게 풀이할 수 있는 방..

[JAVA] 2024.06.20