전체 글

전체 글

    백준 20365 - (Java) 블로그2

    https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 1. 유형 그리디 2. 문제 접근 아래와 같은 예시를 들어봅시다. 연속하는 색끼리 묶음을 만듭니다. B는 3개, R은 2개가 됩니다 더 개수가 많은 것이 기준이 됩니다. 즉 B로 전체를 한번 색칠하고, R을 부분 색칠해주면 됩니다. 그래서 B의 전체 색칠(1번) + R의 부분색칠(2번) = 3번이 정답이 됩니다. 3. 코드 import java.util.*; import java.io.*; pu..

    백준 16926 - (Java) 배열 돌리기1

    https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 1. 유형 구현 2. 문제 접근 사격형의 4개의 귀퉁이를 설정해 줍니다 사각형의 크기가 줄어들 때, 4개의 좌표를 다시 설정해줍니다 저것을 R번만큼 반복하면 종료 2번째 풀이. 저는 위처럼 사각형의 4개의 좌표를 구해서 해결했지만, 변수가 4개가 필요하고 각 방향마다 for문을 써줘서 코드가 더럽습니다...

    백준 15565 - (Java) 귀여운 라이언

    https://www.acmicpc.net/problem/15565 15565번: 귀여운 라이언 꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 www.acmicpc.net 1. 유형 투포인터 2. 문제 분석 시뮬레이션 위와 같이 시뮬레이션을 돌리면 푸는것이 가능합니다. 오른쪽이 증가하는 중(rflag == true)이면, 합을 감소시키고, 길이를 갱신 그리고 왼쪽 포인터를 증가시키기 위해 lflag=true를 시켜줍니다. 2번째 풀이 위 처럼 구하면 코드도 더럽고, 변수도 많이 필요합니다. 그래서 라이언의 인덱스만 따로 리스트에 저장. 그러면 {0, 4, 6,..

    백준 13902 - (Java)개업 2

    https://www.acmicpc.net/problem/13902 13902번: 개업 2 해빈이는 짜장면을 정말 좋아한다. 짜장면을 너무 좋아한 나머지 짜장면만 파는 중국집을 개업했다! 해빈이는 양손잡이여서 동시에 두 개의 웍(중국 냄비)을 사용하여 요리할 수 있다. 그러나 www.acmicpc.net 1. 유형 다이내믹 프로그래밍 2. 문제 분석 사용한 자료구조 set

    프로그래머스 - 메뉴 리뉴얼

    https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 유형 브루트포스, 부분집합 문제분석 orders의 요소별로 모든 조합의 갯수를 구해줍니다. 1번 태스트케이스를 예시로 보면, ABCFG에서 course의 길이가 2, 3, 4니깐 각 길이에 맞는 조합을 모두 구해줍니다. 그리고 HashMap자료구조를 통해 {문자열: 갯수} 형태로 넣어줍니다. 코드를 보면 현재 인덱스를 선택하고, 인덱스+1로 재귀를 호출함으로써 중..

    백준 16988 - (Java)Baaaaaaaaaduk2

    https://www.acmicpc.net/problem/16988 16988번: Baaaaaaaaaduk2 (Easy) 서기 2116년, 인간은 더 이상 AI의 상대가 되지 못하게 되었다. 근력, 순발력, 창의력, 사고력, 문제해결능력, 심지어 인간미조차 AI가 인간을 앞선다. AI가 온 지구를 관리하며 이미 인류는 지구의 www.acmicpc.net 1. 유형 BFS, 구현 2. 문제 분석 dfs와 bfs를 사용하는 문제였습니다. 1번 돌을 놓을 두 곳을 찾아서 돌 놓기 1번 돌로 둘러싸여 있는지 판단하기 bfs를 시작할 2번 돌 찾기 bfs 돌리기 만약 완전히 둘러싸였으면 2번 돌 카운트 1번 돌 놓을 자리 찾기 2중 for문을 돌려서 아직 돌이 놓아지지 않은 자리를 찾습니다. BFS를 시작할 곳을..

    백준 - 1059 (Java)좋은 구간

    https://www.acmicpc.net/problem/1059 1059번: 좋은 구간 [9, 10], [9, 11], [9, 12], [10, 11], [10, 12] www.acmicpc.net 유형 수학, 배열 풀이 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(in.readLine()); int N =stoi(st.nextTo..

    백준 16985 - (Java) Maaaaaaaaaze

    https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net 유형 구현, 너비우선탐색 문제분석 위 순서대로 구현하시면 됩니다. 회전 먼저 arraycopy라이브러리를 사용하여, 원본을 복사해줍니다. 그리고 map에 시계방향 회전을 합니다. 순열로 판의 위치 재배열 순열에서 중복은 허용하지 않기 때문에, contains라이브러리를 사용했습니다. list에 {0,1,2,3,4} or {0,1,2,4,3} ... 등으로 총 5!만큼 만들어줍..

    백준 18223 - (Java)민준이와 마산 그리고 건우

    https://www.acmicpc.net/problem/18223 18223번: 민준이와 마산 그리고 건우 입력의 첫 번째 줄에 정점의 개수 V와 간선의 개수 E, 그리고 건우가 위치한 정점 P가 주어진다. (2 ≤ V ≤ 5,000, 1 ≤ E ≤ 10,000, 1 ≤ P ≤ V) 두 번째 줄부터 E개의 줄에 걸쳐 각 간선의 정보 www.acmicpc.net 유형 다익스트라 문제분석 플로이드 와샬을 쓰려고 했지만 인풋값이 너무 커서 3중 for문에서 시간초과가 날 것입니다. 따라서 최단거리 알고리즘 중 하나인 다익스트라를 사용 설계를 하자면 코딩화 가장 큰 핵심은 다익스트라 구현입니다. 다익스트라의 핵심 미리 구해놓은 경로보다 현재의 새로운 경로가 더 가까울시 갱신. 위와 같은 상황, 1->3까지 가..

    [Java] 스프링 컨테이너와 싱글톤 컨테이너

    이전 시간에 이어서 DI, IoC컨테이너를 스프링 컨테이너로 바꿔봅시다. 목차 컨테이너 생성 과정 컨테이너 생성 방법 싱글톤 패턴 스프링 컨테이너란? 프레임워크를 사용해서 빈을 생성하고 관리하는 저장소 종류 스프링 컨테이너는 BeanFactory와 ApplicationContext가 있습니다. 둘의 구분은 상속관계를 보면 알 수 있듯이 ApplicationContext가 더 기능이 많습니다. 생성 방법 컨테이너 생성 빈 등록 먼저 컨테이너를 생성해봅시다. ApplicationContext ac = new AnotationConfigApplicationContext(AppConfig.class); //AppConfig클래스를 스프링 컨테이너로 등록하겠다. 그러면 빈 이름과 객체로 구성된 저장소가 생성됩니다..