Algorithm & Data Structure
[Java] 프로그래머스 : 서울에서 김서방 찾기
https://programmers.co.kr/learn/courses/30/lessons/12919 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니 programmers.co.kr 풀이 answer에 +=를 하지 않고 =로 대입만 했다가 틀렸었다...^^ 조심하자 class Solution { public String solution(String[] seoul) { String answer = ""; for(int i = 0; i
[Java] 프로그래머스 : 문자열 내 p와 y의 개수
https://programmers.co.kr/learn/courses/30/lessons/12916 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr 풀이 charAt()은 string 타응로 받은 문자열을 char 타입으로 한 글자만 받는 함수이다. 문자열의 개수를 세어주는 함수 countChar()을 새롭게 정의했다. 대문자와 소문자의 아스키코드 차이는 32라 -32를 해줬다. class Solution { boolean solutio..
[Java] 프로그래머스 : 가운데 글자 가져오기
https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 풀이 substring 함수로 문자열을 나눠주었다. 인자로들어가는 시작위치와 끝위치를 주는게 조금 헷갈렸다. String.substring(start,end)는 start 위치부터 end "전" 까지 문자열을 자른다. class Solution { public String solution(String s) { return ..
[Java] 프로그래머스 : 문자열 다루기 기본
https://programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 programmers.co.kr 풀이 문자열을 charAt을 통해 숫자 0~9에 포함되는지 아닌지 판단한다. class Solution { public boolean solution(String s) { // 문자열 길이가 4,6 인지 확인 if(!(s.length()==4||s.length()==6)) return false; // 문자..
[Java] 프로그래머스 : 두 개 뽑아서 더하기
https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 풀이 중첩 for문으로 두 개의 수를 더한 수를 list에 add하고 list를 정렬한다. list에 add할 때 이미 같은 값이 있다면 넣지 않는다. 이미 같은 값이 있는지 확인하기 위해 contains() 함수를 사용한다. contains() 함수는 대상 문자열에 특정 문자열이 포함되어 있는지 확인하는 함수이다..
[Java] 프로그래머스 : 자연수 뒤집어 배열로 만들기
https://programmers.co.kr/learn/courses/30/lessons/12932 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 programmers.co.kr 풀이 10으로 나눈 나머지를 배열에 넣고 몫이 0이 될 때까지 반복한다. import java.util.ArrayList; class Solution { public int[] solution(long n) { ArrayList list = new ArrayList(); while(n!=..
[Java] 프로그래머스 : 제일 작은 수 제거하기
https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr 풀이 배열을 차례대로 비교해서 작은 수(tmp)의 위치를 position에 저장해둔다. 배열끝까지 반복문이 끝나고나면 해당 위치의 원소를 삭제한다...는 삭제할수 없으니까 해당 위치의 원소가 아닌 배열들만 list에 add한다. list 크기가 0 이면 배열에 -1을 넣어 리턴한다. import java.util...
[Java] 프로그래머스 : 같은 숫자는 싫어
https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 풀이 뒤에 연속적으로 같은 숫자가 나타나면 제거해야하니까 배열원소와 그 뒤의 원소를 비교해 다른 경우에만 list에 넣어주었다. 첫번째 원소은 list에 넣어두고 두번째 원소부터 그 앞의 원소와 비교하도록 했다. import java.util.*; public class Solution { public int[] solution(int..