[문제]


reverseStr 메소드는 String형 변수 str을 매개변수로 입력받습니다.
str에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 String을 리턴해주세요.
str는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
예를들어 str이 Zbcdefg면 gfedcbZ을 리턴하면 됩니다.




[내 문제 풀이]



public class ReverseStr {
    public String reverseStr(String str) {
        String result ="";
        int x = str.length();
        char[] ar = new char[x];

        for (int i = 0; i < x; i = i + 1) {
            ar[i] = str.charAt(i);
        }

        for (int i = 0; i < x; i = i + 1) {
            for (int j = 1+i; j < x ; j = j + 1) {
                if (ar[i] < ar[j]) {
                    char temp = ar[i];
                    ar[i] = ar[j];
                    ar[j] = temp;

                }
            }
        }

        for(int i = 0; i<x; i=i+1) {
            result = result + ar[i]+"";
        }

        return result;
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println(rs.reverseStr("Zbcdefg"));
    }
}




[다른 분 문제 풀이]


import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){
// toCharArray로 배열로 변환
    char[] sol = str.toCharArray();
    Arrays.sort(sol);
    return new StringBuilder(new String(sol)).reverse().toString();
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }
}




[버블정렬]


public class ReverseStr {
    public String reverseStr(String str){
    char[] chars = str.toCharArray();
     char temp =' ';

     for(int i = 0; i < str.length(); i++){
         for(int j = 0; j < str.length()-1 ; j++){
             if( chars[j] < chars[j+1]){
                 temp = chars[j];
                 chars[j] = chars[j+1];
                 chars[j+1] = temp;
             }
         }
     }
     str = new String(chars, 0, chars.length);
        return str;
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }
}


'알고리즘' 카테고리의 다른 글

서울에서김서방찾기  (0) 2018.02.22
수박수박수박수박수박수?  (0) 2018.02.22
가운데 글자 가져오기  (0) 2018.01.23
<공부가 더필요 > 삼각형 출력하기  (0) 2018.01.21
역삼각형 출력하기  (0) 2018.01.14

1)jquery 사용법 

 => www.jquery.com에 접속 

 => download를 클릭 

 => 하단으로 스크롤을 해서 google 이나 microsoft 를 사용합니다. 

 => 회사에서 다른 소리 하지 않으면 1.x.x 버전을 사용하세요 

 => 전자프레임워크 개발가이드 표준 프레임 워크를 보면  모바일 실행환경을 보면 1.11.2입니다.





<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>


출처 : https://programmers.co.kr/learn/challenge_codes/106

[문제]

findKim 함수(메소드)는 String형 배열 seoul을 매개변수로 받습니다.

seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하세요.
seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.



[내 문제풀이]

package a;


public class FindKim {

public String findKim(String[] seoul){

//x에 김서방의 위치를 저장하세요.

int x = 0;

int n = seoul.length;

for(int i= 0; i<n; i=i+1) {

if(seoul[i].equals("Kim")) {

x=i;

}

}

return "김서방은 "+ x + "에 있다";

}

// 실행을 위한 테스트코드입니다.

public static void main(String[] args) {

FindKim kim = new FindKim();

String[] names = {"Queen", "Tod","Kim"};

System.out.println(kim.findKim(names));

}

}



[다른사람 문제 풀이]


import java.util.Arrays;

public class FindKim {
    public String findKim(String[] seoul){
        return "김서방은 "+ Arrays.asList(seoul).indexOf("Kim") + "에 있다";
    }

    // 실행을 위한 테스트코드입니다.
    public static void main(String[] args) {
        FindKim kim = new FindKim();
        String[] names = {"Queen", "Tod","Kim"};
        System.out.println(kim.findKim(names));
    }
}


'알고리즘' 카테고리의 다른 글

문자열 내림차순으로 배치하기  (0) 2018.02.28
수박수박수박수박수박수?  (0) 2018.02.22
가운데 글자 가져오기  (0) 2018.01.23
<공부가 더필요 > 삼각형 출력하기  (0) 2018.01.21
역삼각형 출력하기  (0) 2018.01.14

[문제]

출처 :https://programmers.co.kr/learn/challenge_codes/109

water_melon함수는 정수 n을 매개변수로 입력받습니다.
길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.

예를들어 n이 4이면 '수박수박'을 리턴하고 3이라면 '수박수'를 리턴하면 됩니다.



[내가 푼 풀이법]

public class WaterMelon {

public String watermelon(int n){

String ar [] = {"수","박"};

String sum = "";

for(int i=0; i<n; i=i+1){

sum+= ar[i%2];

}

//마지막에 equals로 n과 값이 같다면으로 물어보면 되겠네 

return sum;

}


// 실행을 위한 테스트코드입니다.

public static void  main(String[] args){

WaterMelon wm = new WaterMelon();

System.out.println("n이 3인 경우: " + wm.watermelon(3));

System.out.println("n이 4인 경우: " + wm.watermelon(4));

}

}



[다른사람분의 풀이법]


public class WaterMelon {
    public String watermelon(int n){

        return new String(new char [n/2+1]).replace("\0", "수박").substring(0,n);
    }

    // 실행을 위한 테스트코드입니다.
    public static void  main(String[] args){
        WaterMelon wm = new WaterMelon();
        System.out.println("n이 3인 경우: " + wm.watermelon(3));
        System.out.println("n이 4인 경우: " + wm.watermelon(4));
    }
}


'알고리즘' 카테고리의 다른 글

문자열 내림차순으로 배치하기  (0) 2018.02.28
서울에서김서방찾기  (0) 2018.02.22
가운데 글자 가져오기  (0) 2018.01.23
<공부가 더필요 > 삼각형 출력하기  (0) 2018.01.21
역삼각형 출력하기  (0) 2018.01.14

0212_script.txt

0213_script.txt

0219.txt

0220.txt

0220_jQuery.txt

0221_JQuery.txt

2014_script.txt


1. 클래스와 객체

- 클래스의 정의 : 객체를 정의해 놓은 것

- 클래스의 용도 : 객체를 생성하는데 사용

- 객체의 정의 : 실제로 존재하는 것 (사물 또는 개념)

- 객체의 용도 : 객체의 속성과 기능에 따라 다름

- 클래스를 정의하고 클래스를 통해 객체를 생성하는 이유는 설계도를 통해서 제품을 만드는 이유와 같다.

- 하나의 설계도만 잘 만들어 놓으면 제품을 만드는 일이 쉬워지는 것과 같기 떄문이다.

- JDK에서는 많은 수의 유용한 클래스(API)를 기본적으로 제공하고 있다.


2. 객체와 인스턴스

- 객체는 인스턴스를 포함하는 일반적인 의미

- 인스턴스화 : 클래스로부터 인스턴스를 생성하는 것

- 클래스 > 인스턴스화 > 인스턴스(객체)


3. 객체의 구성요소

- 객체는 다수의 속성과 다수의 기능 두 종류의 구성요소로 이루어진다.

- 객체는 속성과 기능의 집합이며, 속성과 기능을 객체의 멤버라고 한다.

- 속성(Property) : 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)

- 기능(function) : 메서드(method), 행위(behavior), 함수(function)


4. 인스턴스의 생성

- 클래스명 참조변수명 = new 클래스명();

- 클래스의 객체를 참조하기 위한 참조변수를 선언하고 객체를 생성 후, 객체의 주소를 참조변수에 저장한다.

- 인스턴스 초기화 : 인스턴스 변수에 적절한 값을 저장하는 것이다.


5. 생성자(Constructor)

- 클래스이름(타입 변수명, 타입 변수명) { // 인스턴스 생성시 수행될 코드 }

- 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메소드' 이다.

- 인스턴스 변수의 초기화 또는 인스턴스 생성시 수행할 작업에 사용한다.

- 몇가지 조건을 제외하고는 메서드와 같다.

- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.

- 생성자의 이름은 클래스의 이름과 같아야 한다.

- 생성자는 리턴값이 없다. void도 쓰지 않는다.

- 기본 생성자(default constructor) : 매개변수가 없는 생성자, 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.

- 매개변수가 있는 생성자 : 인스턴스마다 각기 다른 값으로 초기화되어야하는 경우가 많기 때문에 매개변수를 사용한 초기화는 매우 유용하다.



출처: http://gangzzang.tistory.com/entry/클래스Class-객체Object-인스턴스Instance-생성자Constructor [갱짱.study]

출처: http://gangzzang.tistory.com/entry/클래스Class-객체Object-인스턴스Instance-생성자Constructor [갱짱.study]

'Java > 자바 공부' 카테고리의 다른 글

Set에 대해서 공부  (0) 2018.04.04
Java의 접근 지정자  (0) 2018.04.04
테이블  (0) 2018.02.06
main  (0) 2018.01.29
dao  (0) 2018.01.29

함수 선언시 :     Parameter = 인자 (매개변수)

파라미터 호출시 : Argument  = 인수 (실행인자)

package JTableMake;


import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableModel;


public class DataWindowTable extends JFrame {

private static final long serialVersionUID = 1L;


// 기본설정은 항상 생성자에서

public DataWindowTable() {


// 테이블에 출력할 데이터 만들기

// 컬럼이름

String[] columns = { "학생", "장래희망", "나이" };


// 데이터 만들기

String[][] datas = { { "김영진", "DJ", "27" }, { "김민호", "경호원", "28" }, { "김기남", "바텐터", "28" },

{ "모인재", "바리스타", "28" }


};


// 데이터를 테이블에 출력하기 위해서 TableModel로 변경


TableModel model = new DefaultTableModel(datas, columns);


// 위의 데이터를 가지고 테이블을 생성

JTable table = new JTable(model);


// Scrollpane을 생성해서 JTable을 배치하고 중앙에 배치

// 컬럼이 나오지 않는다 이걸 출력하기 위해서

JScrollPane sc = new JScrollPane(table);


add("Center", sc);


JPanel p = new JPanel();

JLabel l = new JLabel("이름");

p.add(l);


JTextField Field = new JTextField(5);


p.add(Field);


JLabel category = new JLabel("분야");

p.add(category);

JComboBox<String> cbdream = new JComboBox<String>();


cbdream.addItem("경호원");

cbdream.addItem("경찰");

cbdream.addItem("의사");

cbdream.addItem("비행사");

p.add(cbdream);


JLabel age = new JLabel("나이");

p.add(age);


JTextField ageput = new JTextField(3);

p.add(ageput);


JButton btn = new JButton("삽입");

p.add(btn);

JButton btn1 = new JButton("삭제");

p.add(btn1);

add("North", p);


setTitle("표만들기");

setBounds(700, 300, 500, 500);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);


// 버튼을 눌렀을 때는 ActionEvent 발생


ActionListener listener = new ActionListener() {


@Override

public void actionPerformed(ActionEvent e) {


// 이벤트 라우팅


switch (e.getActionCommand()) {


case "삽입":

// 입력하거나 선택한 데이터 가져오기


String name = Field.getText();

String age1 = ageput.getText();

String category1 = cbdream.getSelectedItem().toString();

System.out.println(name);

System.out.println(age1);

System.out.println(category1);


// 오류 메세지

if (name.trim().length() < 1) {

JOptionPane.showMessageDialog(null, "이름은 필수 입력", "입력오류", JOptionPane.ERROR_MESSAGE);

// 중간에 빠져나가고 싶으면 리턴을하면됩니다.

return;

}

 

if (age1.trim().length() < 1) {

JOptionPane.showMessageDialog(null, "나이를입력 필수", "입력오류", JOptionPane.ERROR_MESSAGE);

// 중간에 빠져나가고 싶으면 리턴을하면됩니다.

return;

}

// age는 숫자로만 구성되어야합니다.

int i = 0;

while (i < age1.length()) {


char ch = age1.charAt(i);

if (ch < '0' || ch > '9') {

JOptionPane.showMessageDialog(null, "나이는 숫자로만 입력", "입력오류", JOptionPane.ERROR_MESSAGE);

return;

}


i = i + 1;

}


// 데이터 삽입작업

String[] row = { name, category1, age1 };


// 테이블의 모델을 꺼내기

// 형변환한 이유

// JTable의 Model은 DefaultTableModel 클래스 타입인데

// getModel로 리턴받게 되면 TableModel로 리턴되서

// 원래의 자료형으로 형변환해서 사용합니다.

// 테이블에 삽입이 아닌 테이블의 모델이 삽입한 것 

DefaultTableModel m = (DefaultTableModel) table.getModel();

m.addRow(row);

JOptionPane.showMessageDialog(null, "삽입에 성공", "데이터 삽입",JOptionPane.INFORMATION_MESSAGE);

Field.setText("");

age.setText("");

cbdream.setSelectedIndex(0);

break;

case "삭제":

int rownum = table.getSelectedRow();

//선택이 안된경우는 음수값

if(rownum<0) {

JOptionPane.showMessageDialog(null, "삭제할 행을 선택하세요", "데이터 삭제",JOptionPane.INFORMATION_MESSAGE);

return;

}

// Confirm 대화상자 출력 

int r =  JOptionPane.showConfirmDialog(null, "정말로삭제? ","데이터삭제",JOptionPane.YES_NO_CANCEL_OPTION);

if(r==0) {

DefaultTableModel m1 = (DefaultTableModel)table.getModel();

m1.removeRow(rownum);

JOptionPane.showMessageDialog(null, "삭제완료","삭제",JOptionPane.INFORMATION_MESSAGE);

}


break;

}


}


};

btn.addActionListener(listener);

btn1.addActionListener(listener);

}


}



'Java > 자바 공부' 카테고리의 다른 글

Java의 접근 지정자  (0) 2018.04.04
클래스와 인스턴스와 생성자 정의  (0) 2018.02.12
main  (0) 2018.01.29
dao  (0) 2018.01.29
view  (0) 2018.01.29

+ Recent posts