본문 바로가기

java

[Java] 1부터 10000까지의 자연수에서 8의 개수를 세는 연습문제. 문제: 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가? 8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다. (※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함) 출처: codingdojang.com/scode/393#answer-filter-area Idea: 이건 너무 쉬운 문제라 코드로 작성하기 민망하다. 다만, 구글의 입사문제였기 때문에 창의력을 발휘하는 지의 여부를 확인하는 문제였을 듯하다. 따라서, 코드로 형식적으로 푼 답의 아래에 있지만, 경우의 수를 이용해서 풀이할 수도 있을 것 같다. 10000은 8이 없으므로 1부터 9999까지의 수, 즉 모든 4자리 자연수 중에서 8의 개수를 센다. 한 자리에 8이 들어가고, 나머지 .. 더보기
[Java] Java 연습문제: Self Number 탐색 프로그램 문제: 어떤 자연수 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 보다 작은 모든 셀프 넘버들의 합을 구하라. 출처: codingdojang.com/scode/365.. 더보기
[Java 연습문제] String class의 method연습 String class의 charAt 메소드와 Charater class의 getNumericValue 메소드를 사용한 예제. 문제 string 형태의 변수인데, 숫자로만 이루어진 것이 주어진다. 각 자리수의 합을 int로 출력하는 프로그램. 방향 1. string을 char로 하나씩 분리한다. -> str.charAt(int i) 사용 Character.getNumericValue(char ch) 사용 더보기
[Java 연습문제] 중첩된 덧셈(for문과 static method 연습) 문제 1 + (1+2) + ... + (1+2+3+4+5+6+7+8+9+10) 을 계산하는 프로그램. 코드 package tutorials.practices; // 1 + (1+2) + ... + (1+2+3+4+5+6+7+8+9+10) 을 계산하는 프로그램. public class Summation_1to10 { public static void main(String[] args) { int section_result = 0; int whole_result = 0; int limit; limit = 10; for(int i = 1; i 더보기
[Java] Overriding 과 Overloading Overriding과 Overloading은 아주 비슷한 이름을 가지고 있고, 둘 다 method에 대해 어떤 문법을 가지고 있기 떄문에 비슷한 뉘앙스를 가지고 있다. 하지만 두 기법은 전혀 다른 개념을 가지고 있고, 각자만의 까다로운 문법 규칙을 가지고 있다. 1. Overriding (오버라이딩) 오버라이딩은 상속된 클래스인 자식 클래스(하위 클래스)에서 상속한 클래스인 부모 클래스(상위 클래스)의 특정 메소드를 가지고 그대로 쓰고 싶지 않을 때 사용하는 기법이다. 자식 클래스에서 부모 클래스의 메소드를 그대로 사용하는 것이 일반적이지만, 어떨 때에는 특정한 메소드에서 살을 더 붙여서 조금 다른 기능을 하게 만들거나, 특정한 메소드를 아예 다른 기능을 하는 메소드로 고치고 싶을 때가 있다. 즉, 자식.. 더보기
[Java] 객체지향 프로그래밍 in Java 객체지향 프로그래밍의 의미와 Java에서의 구체적인 문법에 대해서 기본적인 공부를 나열하는 글입니다. 1. 객체지향 프로그래밍이란? 객체 지향 프로그래밍이란 기본적으로 프로그램을 건강하고 활용도 높게 만드는 기법이라고 할 수 있다. 그저 함수를 여러 개 만들고 그것을 main의 다양한 위치에서 여러 번 재활용하는 것 자체도 객체 지향적이라고 말할 수 있다. 하지만, 프로그래밍은 그보다 더 복잡하고 활용도가 더 높은 객체 지향 기법을 사용한다. 2. Java에서 객체지향 프로그래밍이란? Java에서 객체는 복제되어 사용되는 Class라고 할 수 있다. 예를 들어, 하나의 핸드폰 제품이 있다고 생각해보자. 그 핸드폰 자체의 설계도가 Java에서의 Class라고 할 수 있다. 그 핸드폰을 내가 구입한다면 나는.. 더보기