목록전체 글 (210)
각진 세상에 둥근 춤을 추자
문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. package step06; import java.util.Scanner; import java.util.StringTokenizer; public class _06 { public static void main(String[..
프로그램의 기능을 효과적으로 구현하기 위하여 프로그램을 개발할 때 사용하는 자료를 어떤 구조로 관리할 것인가는 중요하다. 이때 사용하는 것을 자료 구조(data structure)라고 한다. 자료 구조는 프로그램 실행 중에 메모리에 자료를 유지, 관리하기 위해 사용한다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에서 제공하고 있는데, 이를 컬렉션 프레임워크(collection framework)라고 한다. 컬렉션 프레임워크의 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있다. Collection 인터페이스: 하나의 자료를 모아서 관리하는 데 필요한 기능을 제공 Map 인터페이스: 쌍(pair)으로 된 자료를 관리하는 데 유용한 기능을 제공 1..
여러 참조 자료형을 사용할 수 있도록 프로그래밍하는 것을 '제네릭(Generic) 프로그래밍'이라고 한다. 제네릭에서는 여러 참조 자료형을 사용해야 하는 부분에 Object가 아닌 'T'와 같이 하나의 문자로 표현한다. 그리고 객체를 생성할 때, T 자리에 구체적인 자료형을 적는다. 즉, Box 클래스 안에 저장되는 구체적인 자료형 대신, T라는 타입 매개 변수로 표시한 것이다. 이렇게 되면 Box로 생성된 객체는 어떤 타입의 데이터든 저장할 수 있다. 제네릭 클래스(generic class)는 타입을 변수로 표시한다. 이것을 타입 매개 변수 (type parameter)라고 하는데 타입 매개 변수는 객체 생성 시에 프로그래머가 결정한다. 3D 프린터 클래스 예제를 통해 제네릭 프로그래밍을 이해해 본다...
자바의 모든 클래스와 인터페이스는 컴파일 되고 나면 class 파일로 생성된다. 예를 들어 a.java 파일이 컴파일 되면 a.class 파일이 생성되고 이 class 파일에는 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등의 정보가 들어 있다. 클래스의 정보를 사용할 경우 클래스가 정확히 어떤 자료형인지 알 필요가 있다. Class 클래스를 선언하고 클래스 정보를 가져오는 방법은 다음과 같이 세 가지가 있다. // 1. Object 클래스의 getClass( ) 메서드 사용하기 String s = new String(); class c = s.getClass(); // 2. 클래스 파일 이름을 Class 변수에 직접 대입하기 Class c = String.Class; // 3. Class.forN..
autofocus - 입력 커서 표시 placeholder - 힌트 표시 readonly - 읽기 전용 필드 readonly 속성으로 지정되면 해당 필드의 내용은 새로 입력할 수 없고 삭제할 수도 없다.
태그 - 입력 항목 만들기 사용자가 내용을 입력하는 부분은 한 줄짜리 텍스트나 비밀번호 같은 부분이다. 이런 부분을 만들 때 사용하는 태그가 태그이다. 태그에서 사용하는 타입은 다음과 같다. "text" 텍스트 필드 텍스트 필드는 한 줄짜리 일반 텍스트를 입력하는 필드이다. 폼에서 가장 많이 사용하는 요소로 주로 아이디, 이름, 주소 등 텍스트를 입력할 때 사용한다. 텍스트 필드에서 사용하는 속성은 다음과 같다. "password" - 비밀번호 입력란 패스워드 필드는 텍스트 필드와 같지만 사용자가 입력하는 내용이 화면에 표시되지 않는다. (예제) 로그인 폼 만들기 아이디: 비밀번호: "search" - 검색 상자 "url" - url 입력란 "email" - 이메일 주소 입력란 "tel" - 전화번호 입..
웹 폼은 특정 항목에 사용자가 뭔가를 입력하는 형태이다. 익숙하게 사용하는 로그인 창도 웹 폼을 이용한 대표적인 사례이다. 태그 - 폼 만들기 태그는 폼을 만드는 가장 기본적인 태그로 태그와 태그 사이에 여러 폼 요소와 관련된 태그를 넣는다. 여러 폼 요소 속성 설명 method 사용자가 입력한 내용을 서버 프로그램에 어떻게 넘길지 지정한다. 속성 값 get 주소 표시줄에 사용자가 입력한 내용이 그대로 드러난다. post 사용자의 입력을 표준 입력으로 넘겨 입력 내용 길이에 제한을 받지 않고 입력한 내용이 드러나지 않는다. name 폼의 이름을 지정한다. action 태그 안의 내용을 처리할 서버 상의 프로그램을 지정한다. target 태그에서 지정한 스크립트 파일을 현재 창이 아닌 다른 위치에서 열도록..
이차 방정식의 근을 구하는 공식이다. 각 a,b,c의 값을 입력한 후 해당 근의 공식에 대입하여 x의 값을 구한다. package sub06; import java.util.Scanner; public class Test11 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("a값 입력: "); int a = sc.nextInt(); System.out.print("b값 입력: "); int b = sc.nextInt(); System.out.print("c값 입력: "); int c = sc.nextInt(); int x1 = (-b +(int) Math.sqrt(b*b - 4*a..
정수와 같은 기초 자료형을 객체로 포장하고 싶은 경우, 랩퍼 클래스(Wrapper Class)를 사용한다. 랩퍼 클래스는 여러 가지 유용한 메소드를 제공한다. 특히, 저장된 값을 다른 자료형으로 변환하는 메소드를 제공하기도 한다. // 객체를 매개변수로 받는 경우 public void setValue (Integer i) {...} // 반환 값이 객체인 경우 public Integer returnValue() {...} Wrapper 클래스의 종류는 다음과 같다. 기본형 Wrapper 클래스 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 대표적인 Integer 클래스를 ..
문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. package step06; import java.util.Scanner; public class _05 { public static void main(String[] args) { // 알파벳 A-Z, ? int arr [] = new int [27]; // 최빈수 int m..