반응형

Algorithm/Java 76

프로그래머스 - 시저 암호 java

12926번 문제 코딩테스트 연습 - 시저 암호 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 풀이 영어 알파벳은 대소문자 각각 26개 입니다. 즉 아무리 많은 값을 더하더라도 26이라는 범위 내에서 순환되어야 합니다. 알파벳의 아스키 코드 값은 'A' = 65 / 'a' = 90 입니다. A에 1을 더하면 66을 반환하며 이를 char 로 변환하면 'B' 입니다. 위 두가지 성질을 활용해 공식을 만들 수 있습니다. ✔ 공식 1..

Algorithm/Java 2022.06.27

프로그래머스 - 최소직사각형 java :: 위클리 챌린지 :: 86491

문제 링크 코딩테스트 연습 - 최소직사각형 | 프로그래머스 (programmers.co.kr) 문제 풀이 지문을 잘 보면 명함을 눕힐 수 있다는 부분이 있는데, 명함을 눕힐 수 있다는 것은 가로/세로의 구분이 없다는 말입니다. 코드 public int solution(int[][] sizes) { int maxX = Integer.MIN_VALUE, maxY = Integer.MIN_VALUE; for(int[] size : sizes) { maxX = Math.max(maxX, Math.max(size[0], size[1])); maxY = Math.max(maxY, Math.min(size[0], size[1])); } return maxX * maxY; } 가로/세로 구분이 없으니 명함의 큰 값을 ..

Algorithm/Java 2022.06.22

프로그래머스 - 부족한 금액 계산하기 java :: 위클리 챌린지

82612번 문제 코딩테스트 연습 - 부족한 금액 계산하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 풀이 주로 이런 문제는 반복문을 활용하면 쉽게 풀 수 있지만 count가 커질수록 성능은 많이 떨어지게 됩니다. 등차수열의 합 공식으로 문제를 풀면 빠르고 쉽게 해결할 수 있습니다. 풀이코드 public long solution2(int price, int money, int count) { return Math.max(((lo..

Algorithm/Java 2022.06.21

프로그래머스 - 가운데 글자 가져오기 java

12903번 문제 코딩테스트 연습 - 가운데 글자 가져오기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 풀이 ✔ 단어 's'의 길이는 1 이상 ✔ 홀수는 가운데 1글자, 짝수는 가운데 2글자 풀이1 public String solution(String s) { int len = s.length(); return s.substring((len-1) / 2, (len/2) + 1); } ✔ String.substring..

Algorithm/Java 2022.06.20

프로그래머스 - 헤비 유저가 소유한 장소 MySQL/Oracle

77487번 문제 코딩테스트 연습 - 헤비 유저가 소유한 장소 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 풀이 공간을 소유한 유저의 아이디 - host_id 공간을 두 개 이상 등록한 사람이 "헤비 유저" 즉, places에 host_id가 2개 이상 있는 사람만 골라내면 됩니다. 풀이1 select a.id, a.name, a.host_id from places a join ( select host_id..

Algorithm/Java 2022.06.17

프로그래머스 - 같은 숫자는 싫어 java

12906번 문제 코딩테스트 연습 - 같은 숫자는 싫어 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 풀이 ✔ 입력값으로 들어오는 배열에는 0~9 까지의 숫자만 들어올 수 있다. ✔ 앞의 수와 비교해서 중복된 값이 아닌 경우만 탐색한다. 1번 풀이 public int[] solution(int[] arr) { List list = new ArrayList(); int saveNum = -1; for (int a : arr) { i..

Algorithm/Java 2022.06.16

프로그래머스 - 두 정수 사이의 합 java

12912번 문제 코딩테스트 연습 - 두 정수 사이의 합 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr 풀이 1번 풀이 public long solution(int a, int b) { long sum = 0; for(int i=Math.min(a, b); i

Algorithm/Java 2022.06.14

프로그래머스 - 문자열 내 p와 y의 개수 java :: 12916

문제 링크 코딩테스트 연습 - 문자열 내 p와 y의 개수 | 프로그래머스 (programmers.co.kr) 문제 풀이 코드-1 boolean solution(String s) { int total = 0; for(char ch : s.toLowerCase().toCharArray()) { switch(ch) { case 'p': total++; break; case 'y': total--; break; } } return total == 0; } 최종적으로 p와 y의 개수 차이를 구하기 위한 total 이라는 변수를 선언했습니다. 먼저 String 의 toLowerCase()로 활용해 모든 문자열을 소문자로 만들었습니다. toCharArray()로 char 타입의 배열을 순..

Algorithm/Java 2022.06.10

프로그래머스 - 이상한 문자 만들기 java :: 12930

문제 링크 코딩테스트 연습 - 이상한 문자 만들기 | 프로그래머스 (programmers.co.kr) 풀이 풀이-1 public String solution(String s) { StringBuilder sb = new StringBuilder(); boolean evenFlag = true; for (char ch : s.toCharArray()) { sb.append(evenFlag ? Character.toUpperCase(ch) : Character.toLowerCase(ch)); evenFlag = (ch == ' ') ? true : !evenFlag; } return sb.toString(); } 예제) try hello world -> TrY HeLlO WoRlD 주의할 점은..

Algorithm/Java 2022.02.12

프로그래머스 - 자연수 뒤집어 배열로 만들기 java :: 12932

문제 링크 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 | 프로그래머스 (programmers.co.kr) 문제 풀이 1번 풀이 public int[] solution(long n) { int len = (""+n).length(); int[] arr = new int[len]; for(int i=0; i 54321) 그러므로 자연수 n의 길이를 반환할 배열의 크기로 정한다. 자연수 n의 길이만큼 반복적으로 일의자리를 구하여 배열에 순서대로 저장한다. 예시1. 자연수 n = 12345 ✳️ n=12345, 일의자리: 5 ✳️ n=1234, 일의자리: 4 ✳️ n=123, 일의자리: 3 ✳️ n=12, 일의자리: 2 ✳️ n=1, 일의자리: 1 일의자리를 구한 순서대로 배열에 삽입한 결과: 54321 ..

Algorithm/Java 2022.02.08
반응형