IT 면접 족보37

권단비·2023년 2월 20일
0

IT

목록 보기
78/139

1. ArrayList 와 LinkedList 의 장단점은?

▼정답

・ArrayList<E>(조회 많이하면) : 배열 기반 자료구조, 배열을 이용하여 인스턴스 저장
유리한 작업 :

[ArrayList<E>의 단점]
・저장 공간을 늘리는 과정에서 시간이 비교적 많이 소요된다.
・인스턴스의 삭제 과정에서 많은 연산이 필요할 수 있다. 따라서 느릴 수 있다.

[ArrayList<E>의 장점]
・저장된 인스턴스의 참조가 빠르다.
→배열 형식이기에 1004번지를 찾고 싶으면 1000번지에서 1004번지까지 멈추지 않고 찾는다.
・LinkedList<E>(수정 많이하면) : 리스트 기반 자료구조, 리스트를 구성하여 인스턴스 저장(링크 연결)
유리한 작업 : 입력과 삭제가 빈번한 작업 insert(추가), delete(참조끊기)

[LinkedList<E>의 단점]
・저장된 인스턴스의 참조 과정이 배열에 비해 복잡하다. 따라서 느릴 수 있다.

[LinkedList<E>의 장점]
・저장 공간을 늘리는 과정이 간단하다.
・저장된 인스턴스의 삭제 과정이 단순하다.

2.

Scanner 클래스로 -1이 입력될 때까지 
양의 정수를 입력 받아 저장(List객체)하고 검색하여 
가장 큰 수를 출력하는 프로그램을 작성하라.

▼정답

3.

Scanner 클래스를 사용하여 6개 학점('A', 'B', 'C', 'D', 'F')을 문자로 입력받아 ArrayList에 저장하고, ArrayList를 검색하여 학점을 점수(A=4.0, B=3.0, C=2.0, D=1.0, F=0)로 변환하여 평균을 출력하는 프로그램을 작성하라.
6개의 학점을 빈 칸으로 분리 입력(A/B/C/D/F) >> A C A B F D 2.3333333333333335
A: 4.0
B: 3.0
C: 2.0
D:1.0
F:0.0

▼정답

package CollectionF;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Test2 {
	public static void main(String[] args) {
		double score = 0;
		String input;

		List<String> list = new ArrayList<>();
		Scanner sc = new Scanner(System.in);

		System.out.print("학점을 입력하시오 >> ");
		input = sc.nextLine();

		StringTokenizer st1 = new StringTokenizer(input);
		String compare;

		while (st1.hasMoreTokens()) { // StringTokenizer에 사용할 수 있는 토큰이 더 있는지 확인
			list.add(st1.nextToken());
		}

		for (Iterator<String> itr = list.iterator(); itr.hasNext();) {
			compare = itr.next();
			if (compare.equals("A")) {
				score += 4.0;
			} else if (compare.equals("B")) {
				score += 3.0;
			} else if (compare.equals("C")) {
				score += 2.0;
			} else if (compare.equals("D")) {
				score += 1.0;
			} else if (compare.equals("F")) {
				score += 0;
			}
		}
		System.out.println();
		System.out.println(score / list.size());

//		System.out.println(list.score / list.size());

	}
}

0개의 댓글