본문 바로가기
프로그래머 ,백준, 유튜브, 문제

[알고리즘 기초 100제] 1번

by 리승우 2022. 8. 22.
package _1;


import java.util.*;
import java.util.Scanner;

public class T1 {

	public static void main(String[] args) {

		Student st1 = new Student("홍길동","1111");
		Student st2 = new Student("손오공","2222");
		Student st3 = new Student("베지터","3333");
		
		ArrayList<Student> list = new ArrayList<Student>();
		
		list.add(st1);
		list.add(st2);
		list.add(st3);
		
		for(Student stu:list) { //list를 모두 순회하며, stu에 순서에 맞게 st1,st2,st3 데이터가 들어감
			System.out.println(stu.getName());
			System.out.println(stu.getNo());
		}
		
		Scanner scan = new Scanner(System.in);
		
		
		while (true) {
			System.out.println("계속 검색을 하고싶으시면 y, 검색을 종료하고 싶으면 n");
			String input = scan.next();
			
			if(input.equals("y")) {
				System.out.println("검색을 시작합니다");
				String name = scan.next();
				
				String student = findStudent(name, list);
				if(student != null) {
					System.out.println("해당하는 학생의 학번은" + student);
				}else {
					System.out.println("해당하는 학생이름이 없습니다."); 
				}
				
				
			}else if (input.equals("n")) {
				break;
			}
		}
		
		
		System.out.println("프로그램이 종료되었습니다.");	
	}
	
	public static String findStudent(String name, ArrayList<Student> list) { //메소드 자체만의 값이다. 위에있는 것들과 동일할 필요가 없다.
		for (Student stu : list) {
			if(stu.getName().equals(name)) { //==은 참조변수의 주소값을 대조하는 것임. value값을 대조하고싶을 때는 equals를 사용해야함
				
				return stu.getNo();
			} 
		}
		
		return null;
	}
	
}
package _1;

public class Student {
	
	private String name;
	private String no;
	
	public Student(String name, String no) {
		super();
		this.name = name;
		this.no = no;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getNo() {
		return no;
	}
	public void setNo(String no) {
		this.no = no;
	}
}

 

홍길동
1111
손오공
2222
베지터
3333
계속 검색을 하고싶으시면 y, 검색을 종료하고 싶으면 n
y
검색을 시작합니다
베지터
해당하는 학생의 학번은3333
계속 검색을 하고싶으시면 y, 검색을 종료하고 싶으면 n
y
검색을 시작합니다
저찰
해당하는 학생이름이 없습니다.
계속 검색을 하고싶으시면 y, 검색을 종료하고 싶으면 n

댓글