당근개발자
당근당근
당근개발자
전체 방문자
오늘
어제
  • 분류 전체보기 (157)
    • codepresoo (13)
    • JAVA (1)
    • JS (12)
    • 코딩 테스트 (7)
    • Spring (21)
    • 자료구조 (4)
    • HTTP (7)
    • JSP (36)
    • Etc (21)
    • RESTful (11)
    • React (1)
    • k8s (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
  • stack#자료구조
  • queue#자료구조
  • thymleaf#layout#fragment#thymleaf layout 적용안됌
  • @JsonFilter#당근개발자
  • 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수강하고있는강의명
  • HATEAOD
  • 이
  • #코드프레소. #codepresso #대외활동 # IT교육 #코딩강의 #코딩 이러닝 # 무료 IT교육 #무료 코딩교육
  • 코드프레소. #codepresso #대외활동 # IT교육 #코딩강의 #코딩 이러닝 # 무료 IT교육 #무료 코딩교육
  • S
  • Primitive#Wrapper
  • 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online
  • thymleaf error#template might not exist
  • dobule_linked_list#java
  • 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online.

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
당근개발자

당근당근

일곱 난쟁이(백준2309번)
코딩 테스트

일곱 난쟁이(백준2309번)

2021. 11. 10. 02:29

처음에 접근할때, 어떻게 해야 7개의 숫자를 이용해서 100을 만들수있는 로직을 만들수있나 생각중.

총합에 100을 빼면, 나머지 두명의 키가 되는것이므로, 배열을 돌려서 두개의 합이 나머지 값이 나온것을 제외해주면 된다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;


public class Main{

    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> list = new ArrayList<Integer>();
       
       //난쟁이들 키 총합 변수
        int max_amount =0;
        //리스트에 키 추가, 총합변수에 키 저장
        for(int i=0; i<9;i++){
            String str = bf.readLine();
            int num = Integer.parseInt(str);
            list.add(num);
            max_amount +=num;
        }
        //
        int left_amout= max_amount-100;
        //정렬
        Collections.sort(list);

        int erase_a =0;
        int erase_b =0;
        //반복문으로 나머지값 을 충족하는 두값 value 찾기
        for(int i=0;i<9;i++){
            int a = list.get(i);
            for(int j=i+1;j<9;j++){
                if(a+ list.get(j) ==left_amout){
                     erase_a =list.get(i);
                    erase_b = list.get(j);
                    break;
                }
            }
        }
        //값 찾아서 제거
        list.remove(Integer.valueOf(erase_a));
        list.remove(Integer.valueOf(erase_b));

        for(int a : list){
            System.out.println(a);
        }
    }



}

list에서 제거하는 작업을 두번째 for 문에 적용했다가, for문 index boud exception에 걸려서, 

제거문은 밖으로 빼줬다. 값을 찾는 즉시 제거하고 싶은데, 어떻게 하면 좋을지 잘 모르겠다.

'코딩 테스트' 카테고리의 다른 글

수 이어 쓰기 1 (백분1748)  (0) 2021.11.15
날짜계산(백준1476)  (0) 2021.11.15
약수(백준 1037)  (0) 2021.11.10
소수 개수 구하기  (0) 2021.11.09
최소공배수,최대공약수  (0) 2021.11.09
    '코딩 테스트' 카테고리의 다른 글
    • 수 이어 쓰기 1 (백분1748)
    • 날짜계산(백준1476)
    • 약수(백준 1037)
    • 소수 개수 구하기
    당근개발자
    당근개발자

    티스토리툴바