Java(160)
-
[Programmers] 키패드 누르기 - Java
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 1단계 문제라서 쉽게 해결될 줄 알았는데 생각보다 애먹었다. 처음에는 키패드 숫자로 계산해서 거리를 찾으려고 했으나 나 실패하였고, 배열로 하려고 잠깐 생각했었지만 복잡해질 것 같았다. 그래서 Position이라는 객체를 만들어서 거리 계산을 해결했다...
2021.12.13 -
[Programmers] 숫자 문자열과 영단어 - Java
https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 이 문제는 replaceAll() 메서드만 알고 있으면 간단하게 풀리는 문제다. class Solution { private static String[] nums = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; public int solution(St..
2021.12.12 -
[Programmers] 신규 아이디 추천 - Java
https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제를 보자마자 정규식을 써서 풀어야 될 거라고 생각했다. 자바에서는 replaceAll()이라는 함수로 정규식을 이용해 문자열을 치환할 수 있다. 정규식을 알면 어렵지 않게 풀 수 있는 문제다. 정규식은 간략하게 정리하면 다음과 같다. 자바에서 정규식을 쓸 때 주의할 점은 정규식 기호를 문자로 매칭하려면 백슬래시(\)를 두 개 붙어줘야 한다. Group..
2021.12.11 -
[Programmers] 로또의 최고 순위와 최저 순위 - Java
https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 문제 풀이의 핵심은 최고 순위는 매칭된 숫자 개수 + 0의 개수이고 최저 순위는 매칭된 숫자 개수라는 것이다. 2중 for 문으로 각 요소를 비교한 뒤에 0의 개수를 세는 식으로 다음과 같이 어렵지 않게 풀어낼 수 있다. 아래는 필자가 처음으로 해결했을 때 작성한 코드이다. 먼저 각 배열을 정렬한 후에 0의 개..
2021.12.10 -
[Baekjoon] 1292번: 쉽게 푸는 문제 - Java
https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 문제 설명 문제 그대로 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ... 로 이루어진 수열에서 입력받은 숫자 사이의 구간의 합을 구하면 된다. 최대 인덱스가 1000이므로 ArrayList로 숫자를 미리 저장해둔 뒤 해당 구간에 해당하는 숫자들을 읽어서 더하는 식으로 간단하게 풀었다(문제 이름 그대로). 문제 풀이 import java.io.*; import java.util.*; public class Ma..
2021.12.10 -
[Java] 메서드 시그니처
자바에서 메서드 이름과 파라미터를 합쳐서 메서드 시그니처라고 한다. 메서드 이름이 다르거나 파라미터 타입, 개수가 다르면 시그니처가 다르다고 표현한다. 리턴 타입이나 예외 타입은 시그니처에 포함되지 않는다. 비교 대상 메서드 public String greeting(String name) throws Exception { return "hello " + name; } 비교 메서드 // 메서드 시그니처가 다르다 public String hello(String name) { return "hello " + name; } // 메서드 시그니처가 다르다 public String greeting(String name, String suffix) { return "hello " + name + suffix; } /..
2021.12.04