Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- 버퍼
- Lv1
- 프로그래머스 문자열 정렬
- StringTokenizer
- 프로그래머스 자바
- 스프링부트 도커 배포
- 프로그래머스
- 알고리즘
- 자바
- 스프링부트 도커로 배포
- SWEA
- Queue
- 큐
- 스택
- 백준
- 클라이언트
- 이진수 변환
- index of
- 문자열
- Stack
- Programmers
- lv2
- 프로그래머스 풀이
- 오름차순 정렬
- 스프링부트 도커
- 삼각형의 완성조건
- lv0
- COS Pro
- 백준 N과 M 자바
Archives
- Today
- Total
mun dev
[COS PRO 1급] 3-10 밥먹고 머리자르고 자바(Java) 본문
문제링크
문제유형
빈 칸 채우기 문제
문제
import java.util.ArrayList;
import java.util.Iterator;
//Shop 인터페이스와 HairShop, Restaurant 클래스는 Inner Class로 작성되어있습니다. 아래 코드를 잘 읽고 빈칸을 채워주세요.
class Main {
class Shop{
protected ArrayList<Customer> reserveList;
public Shop() {
this.reserveList = new ArrayList<Customer>();
}
public boolean reserve(Customer customer){
reserveList.add(customer);
return true;
}
}
class Customer{
public int id;
public int time;
public int numOfPeople;
public Customer(int id, int time, int numOfPeople){
this.id = id;
this.time = time;
this.numOfPeople = numOfPeople;
}
}
class HairShop _____ {
public HairShop(){
super();
}
_____{
if(_____ != 1)
return false;
Iterator<Customer> iter = reserveList.iterator();
while (iter.hasNext()) {
Customer r = iter.next();
if(_____)
return false;
}
reserveList.add(customer);
return true;
}
}
class Restaurant _____ {
public Restaurant(){
super();
}
_____{
if(_____)
return false;
int count = 0;
Iterator<Customer> iter = reserveList.iterator();
while (iter.hasNext()) {
Customer r = iter.next();
if(_____)
count += 1;
}
if(count >= 2)
return false;
reserveList.add(customer);
return true;
}
}
public int solution(int[][] customers, String[] shops) {
Shop hairshop = new HairShop();
Shop restaurant = new Restaurant();
int count = 0;
for(int i = 0; i < shops.length; i++){
if(shops[i].equals("hairshop")){
if(hairshop.reserve(new Customer(customers[i][0], customers[i][1], customers[i][2])))
count += 1;
}
else if(shops[i].equals("restaurant")){
if(restaurant.reserve(new Customer(customers[i][0], customers[i][1], customers[i][2])))
count += 1;
}
}
return count;
}
문제 풀이
import java.util.ArrayList;
import java.util.Iterator;
//Shop 인터페이스와 HairShop, Restaurant 클래스는 Inner Class로 작성되어있습니다. 아래 코드를 잘 읽고 빈칸을 채워주세요.
class Main {
class Shop{
protected ArrayList<Customer> reserveList;
public Shop() {
this.reserveList = new ArrayList<Customer>();
}
public boolean reserve(Customer customer){
reserveList.add(customer);
return true;
}
}
class Customer{
public int id;
public int time;
public int numOfPeople;
public Customer(int id, int time, int numOfPeople){
this.id = id;
this.time = time;
this.numOfPeople = numOfPeople;
}
}
class HairShop extends Shop {
public HairShop(){
super();
}
public boolean reserve(Customer customer){
if(customer.numOfPeople != 1)
return false;
Iterator<Customer> iter = reserveList.iterator();
while (iter.hasNext()) {
Customer r = iter.next();
if(customer.time==r.time)
return false;
}
reserveList.add(customer);
return true;
}
}
class Restaurant extends Shop {
public Restaurant(){
super();
}
public boolean reserve(Customer customer){
if(customer.numOfPeople<2 || customer.numOfPeople>8)
return false;
int count = 0;
Iterator<Customer> iter = reserveList.iterator();
while (iter.hasNext()) {
Customer r = iter.next();
if(customer.time==r.time)
count += 1;
}
if(count >= 2)
return false;
reserveList.add(customer);
return true;
}
}
public int solution(int[][] customers, String[] shops) {
Shop hairshop = new HairShop();
Shop restaurant = new Restaurant();
int count = 0;
for(int i = 0; i < shops.length; i++){
if(shops[i].equals("hairshop")){
if(hairshop.reserve(new Customer(customers[i][0], customers[i][1], customers[i][2])))
count += 1;
}
else if(shops[i].equals("restaurant")){
if(restaurant.reserve(new Customer(customers[i][0], customers[i][1], customers[i][2])))
count += 1;
}
}
return count;
}
// 아래는 테스트케이스 출력을 해보기 위한 main 메소드입니다.
public static void main(String[] args) {
Main sol = new Main();
int[][] customers = {{1000, 2, 1},{2000, 2, 4},{1234, 5, 1},{4321, 2, 1}, {1111, 3, 10}};
String[] shops = {"hairshop", "restaurant", "hairshop", "hairshop", "restaurant"};
int ret = sol.solution(customers, shops);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("solution 메소드의 반환 값은 " + ret + " 입니다.");
}
}
'알고리즘 > COS PRO 1급' 카테고리의 다른 글
[COS PRO 1급] 4-2 문자열 압축 자바(Java) (0) | 2023.11.29 |
---|---|
[COS PRO 1급] 4-1 사전에서 단어 찾기 자바(Java) (0) | 2023.11.29 |
[COS PRO 1급] 3-9 팝업 스토어를 열 최적의 날짜 자바(Java) (0) | 2023.11.29 |
[COS PRO 1급] 3-8 선풍기를 몇대 사야 하나요 자바(Java) (0) | 2023.11.29 |
[COS PRO 1급] 3-7 카프리카 수 자바(Java) (0) | 2023.11.29 |