일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 알고리즘
- Design Pattern
- 자바
- 카카오톡1차
- 람다
- JPA
- 매핑
- Singleton
- 인강리뷰
- math
- 디자인패턴
- 독서리뷰
- spring
- study
- Eclipse
- 오라클
- 회고
- javascript
- Java
- 에러
- 후기
- Head First Design Pattern
- Oracle
- 공부
- 이펙티브자바
- 독서
- 프로그래머스
- 우아한테크코스
- 인코딩
- 인프런
- Today
- Total
목록알고리즘 (33)
Lee's Grow up
문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 * 으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 나의 풀이 class Solution { public String solution(String phone_number) { String tempPhoneNumber = phone_number.substring(phone_numb..
문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 예 arr1 arr2 return [ [1,2], [2,3] ] [ [3,4], [5,6] ] [ [4,6], [7,9] ] [ [1], [2] ] [ [3], [4] ] [ [4], [6] ] 나의 풀이 class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length]..
문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x 부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10,000,000 이상, 100,00,000 이하인 정수입니다. n은 1,000 이하인 자연수입니다. 입출력 예 x n return 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4,-8] 나의 풀이 class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; answer[0] = x; for (int i = 1; i < answer.length; i+..
문제 길이가 n이고, "수박수박수박수..."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요, 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 "수박수" 4 "수박수박" 나의 풀이 class Solution { public String solution(int n) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < n; i++) { sb = (i%2 ==0 ? sb.append("수") : sb.append("박")); } return sb.toString(); } }
문제 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다. ) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 입출력 예 설명 입출력 예 #1 1부터 10 사이의 소수는 [ 2, 3, 5, 7 ] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [ 2, 3, 5 ] 3개가 존재하므로 3을 반환 나의 풀이 class Solution { public int solution(int n) { int cnt = 0; int[] number = new int[n+1]; for(int i = 2; i
문제 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 잇어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 " "(공백) 또는 "#"(벽) 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자, 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호회되어 있다. 암호화된 배열은 지도의 각 가로줄에서 벽 ..
문제 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어( 공백을 기준 ) 별로 짝/홀수 인덱스를 판단해야 합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return "try hello world" "TrY HeLlO WoRlD" 입출력 예 설명 "try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면..
문제 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합게로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single( S ) , Double ( D ), Triple ( T ) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 ( 점수^1, 점수^2, 점수^3 ) 으로 계산된다. 옵션으로 스타상 ( * ), 아차상 ( # ) 이 존재하며 스타상 ( * ) ..