Last edited by
orange
질문면접
- 학교 공부 외에 별도 프로그래밍 관련 활동을 한적이 있나요?
- 선호하는 에디터 혹은 IDE가 있나요?
- 프로그래밍을 하면서 가장 힘들었던 때는 언제였나요?
- 만들어보고 싶은 프로그램이 있나요?
- 구체적으로 어떠한 일을 하는 프로그래머가 되고 싶나요?
- 스페셜리스트 vs 제너럴리스트?
- 가장 자신있고 선호하는 언어는?
javascript
java
- 아래 코드에서 각각의 키워드에 대해서 설명해주세요.
public static int main(String[] args)
package com.company;
import java.util.ArrayList;
import java.util.stream.Collectors;
class Fruit {
private String name;
private int price;
Fruit(String name, int price) {
this.name = name;
this.price = price;
}
int getPrice() {
return price;
}
String getName() {
return name;
}
}
class FruitDealer {
final private ArrayList<Fruit> fruits;
FruitDealer(ArrayList<Fruit> fruits) {
this.fruits = fruits;
}
ArrayList<String> getFruitsNames() {
return fruits
.stream()
.map(Fruit::getName)
.collect(Collectors.toCollection(ArrayList::new));
}
int getFruitPrice(String fruitsName) {
return fruits.stream()
.filter(f -> f.getName().equals(fruitsName))
.findFirst()
.orElse(null)
.getPrice();
}
int buyFruit(String fruitName, int money) {
int fruitPrice = this.getFruitPrice(fruitName);
if (money > fruitPrice) {
return money - fruitPrice;
}
return money;
}
}
public class Main {
private final static String WHAT_I_WANT_FRUIT = "바나나";
public static void main(String[] args) {
int myMoney = 500;
FruitDealer fruitDealer = new FruitDealer(new ArrayList<Fruit>() {{
add(new Fruit("사과", 300));
add(new Fruit("바나나", 200));
add(new Fruit("포도", 400));
}});
String fruitName = fruitDealer.getFruitsNames().stream()
.filter(s -> s.equals(WHAT_I_WANT_FRUIT))
.findFirst()
.orElse(null);
int fruitPrice = fruitDealer.getFruitPrice(fruitName);
if (myMoney > fruitPrice) {
myMoney = fruitDealer.buyFruit(fruitName, myMoney);
}
System.out.println(myMoney);
}
}