본문 바로가기

날이 좋지 않아서/코딩 테스트

(3)
[구글] 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가? 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가? 8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다. (※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함) 일단 기본적인 틀만 만들었다. 1. 클래스 생성 2. 문제를 적고, 이해한다. 3. 필요한 메서드를 만든다. 4. 객체를 생성한다. 여기까지가 내가 생각하는 기본적인 큰 틀이다. 이제 가장 중요한 문제풀이에 대한 코딩을 해야한다. 이 부분이 중요하면서도 가장 어렵다... 생각을 가장 많이 하게 되는 부분이기 때문이다. 어떤 숫자에 8이 포함할 때 마다 카운팅을 하는 문제이다. 제일 먼저 떠오른 생각은.. "각 자릿수의 숫자를 분리하여 String형으로 파싱한 다음 equals 메서드를..
[넥슨] 1 이상이고 5000 보다 작은 모든 셀프 넘버들의 합을 구하라. 어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 n 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101 이 때, n을 d(n)의 제네레이터(generator)라고 한다. 위의 예에서 91은 101의 제네레이터이다. 어떤 숫자들은 하나 이상의 제네레이터를 가지고 있는데, 101의 제네레이터는 91 뿐 아니라 100도 있다. 그런데 반대로, 제네레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가 셀프 넘버(self-number)라 이름 붙였다. 예를 들어 1,3,5,7,9,20,31 은 셀프 넘버 들이다. 1 이상이고 5000 보다 작은 모든 셀프 넘버들의 합을 구하라. [ 풀이: java ] public static void ma..
3,5의 배수의 총합을 구하라 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. 1000미만의 자연수에서 3,5의 배수의 총합을 구하라. 내가 풀이한 소스 코드는.. public class Multiples { public static void main(String args[]) { int sum=0; for (int i=0; i j%3==0 || j%5==0).sum(); } 파이썬 풀이를 보면 굉장히 간결한 것에 비해 자바 풀이는 다소 긴 편이었다. 그래도 이런 java8 풀이를 보면 이게 정말 자바가 맞나 싶을 정도로 신기하다. 특히 람다식을 이용한 부분이 인상 깊었다. java8의 특징을 잘 설명한 블로그를 찾았다. Java8 정리 : 개요 Java9이 정식 릴리즈된 시점에서 이제야 J..