본문 바로가기
반응형

Language252

프로그래머스 순열 검사 자바 문제풀이 프로그래머스 순열 검사 다음 문제는 int 배열을 받아 1부터 배열의 길이에 해당하는 숫자가 모두 들어있을 경우에는 true 그렇지 않거나 중복 값이 들어있을 경우에는 false를 반환하면 되는 문제인데 풀이방법은 아래와 같다 먼저 배열의 크기와 배열에 들어있는 값으로 true / false를 반환해주면 되기 때문에 배열을 오름차순으로 정렬시킨 뒤 for 문을 돌려보면 arr[0] > 1 arr[1] > 2 이런 식으로 값이 나오게 될텐데 배열은 0부터 시작하고 배열 안의 값은 1부터 시작하기 때문에 배열의 각 값과 i + 1이 같을 경우에는 패스 아닐 경우에는 배열에 중복 값이 들어있거나 혹은 배열에 잘못된 값이 들어있기 때문에 바로 false를 리턴시켜주면 된다 예제에 사용한 코드는 아래와 같다 im.. 2021. 11. 17.
프로그래머스 전화번호 목록 자바 문제풀이 프로그래머스 전화번호 목록 위 문제는 String 배열인 phone_book을 주는데 배열 중 하나의 인덱스가 다른 인덱스의 접두어인 경우에는 false를 반환하고 그 외에는 true를 반환한다 여기서 접두어가 뭔 말이냐면 119 / 97674223 / 1195524421 가 있을 때 1195524421 앞에 119가 있는 것이 보이는데 배열 안에 119가 존재하기 때문에 한 번호가 다른 번호의 접두어라고 보고 false를 반환하면 된다 유의할 점은 대량의 데이터를 가지고 조회를 수행할 경우 startsWith / equals 등은 속도가 느리기 때문에(효율성에서 걸림) 해시를 이용한 방법으로 문제를 풀어줘야 한다 문제풀이는 HashSet 안에 배열 데이터를 담아준 뒤 for 문을 두번 돌리는 것으로 깔.. 2021. 10. 29.
프로그래머스 완주하지 못한 선수 자바 문제풀이 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 프로그래머스 완주하지 못한 선수 위 문제는 String 배열 participant / completion 을 제공받게 되는데 completion 배열은 participant 배열보다 size가 1 작기 때문에 participant 배열에서 completion 배열을 모두 빼준 뒤 남는 하나의 key 값을 반환하면 된다 문제를 푸는 방법은 다양하겠지만 시간제한이 존재하기 때문에 해시(Hash)를 사용해서 문제를 풀어줘야 한다 정답은 아래와 같은.. 2021. 10. 28.
자바 Objects.equals 사용방법 자바에서 Objects.equals(값, 값)을 사용해서 두 값이 동일한지 비교를 할 수 있는데 두 값이 같거나 모두 null 이라면 true 아니면 false 가 떨어지게 된다 일반적으로는 String을 사용해서 비교하기 때문에 크게 사용할 일이 없겠지만 스트림(Stream)에서 값 비교를 할 경우에는 Objects.equals를 이용해서 편하게 값 비교를 해줄 수가 있게 된다 2021. 10. 28.
자바 List에 값 넣은채로 선언하는 방법 자바에서 List 선언 시 값을 넣고 시작했으면 하는데 배열의 경우에는 데이터타입[] 배열명 = {'...'}; 이런 식으로 매우 간단하게 할 수 있듯이 List의 경우에도 매우 간단하게 값을 넣고 선언시킬 수 있는데 쉬운 방법부터 차례대로 설명하자면 (ArrayList는 LinkedList로 변경해도 상관없음) 1. Factory Method를 사용하는 방법(자바 9부터 가능) ArrayList 리스트명 = new ArrayList(List.of("값")); 2. Arrays.asList를 사용하는 방법 List 리스트명 = Arrays.asList("값"); ArrayList 리스트명 = new ArrayList(Arrays.asList("값")); > ArrayList, LinkedList로 받을 .. 2021. 10. 28.
자바 Stream int float double로 반환방법 자바에서 스트림(Stream)을 사용할 경우 집계 메소드인 count를 사용해주면 반환형이 Long인 것이 보이는데 이걸 int / Float / Double 로 받아주고 싶다면 mapToInt > sum 순으로 사용해주면 되는데 1. .mapToInt(n -> 1) 스트림에 걸린 대상을 1로 변경 2. .sum() 모든 대상의 합계를 구함(1+1+1+1) 위 방법으로 .count는 Long만을 반환하지만 int 타입의 1로 만들어버린 후 모두 계산해서 int로 던지는 식으로 사용할 수 있다 Float / Double의 경우에는 mapToInt를 mapToFloat / mapToDouble 로 바꿔주면 된다 예제에 사용한 코드는 아래와 같다 String[] arr = {"A", "B", "C", "A"}.. 2021. 10. 27.

반응형