목록전체 글 (106)
개발스토리

문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 ..

문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. P..

JavaScript는 본인만의 독특한 성격을 가지고 있다. JavaScript는 멀티-패러다임 언어로 명령형, 함수형, 프로토타입 기반 객체지향 언어이다. 클래스가 없어서 객체지향이 아닌 것이 아니다. 즉, JavaScript는 클래스 개념이 없고 별도로 객체를 생성할 수 있는 방법이 존재한다. * 생성자 함수 * 객체 리터럴 * Object() 생성자 함수 위에 코드에서 문제점이 무엇일까? -> 같은 역할을 하는 객체들인 것을 확인 할 수 있다. 같은 역할을 하는 객체를 하나로 통합하지 않고 놔두면서 중복이 발생한다. 중복이 발생하면 코드 양이 늘어날 뿐 아니라, 유지 보수하는 데에도 어렵다. 따라서, 중복을 제거하기 위해 생성자, new를 사용한다. 이렇게 생성자, new를 사용해서 중복을 제거할 수..
오늘날에 프로그래밍 언어(Java, Python, PHP, C# etc)는 객체지향 프로그래밍을 지원한다. 객체지향 프로그래밍은 더 나은 프로그램으로 만들기 위해 로직을 상태와 행위로 이루어진 객체로 만드는 것이다. 이 객체들을 퍼즐처럼 맞추어서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다. 각 객체는 메시지를 받을 수도 있고, 데이터 처리를 할 수 있으며, 또 다른 객체와 메시지를 주고 받을 수 있다. 이런 것들이 인터페이스가 일어나는 것이라고 보면 된다. 따라서, 각 객체는 별도의 역할을 갖고 책임을 가지는 작은 독립된 부품이라고 볼 수 있다. 이러한 부품들은 사용자가 사용하는 방법만 알면 쓸 수 있어야 한다. 따라서 내부의 동작 방법을 안으로 숨기고 사용자에게는 부품의 사용법..