반응형

전체 글 314

[백준]JAVA - 1012번: 유기농 배추

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 대표적인 dfs와 bfs 알고리즘 문제 중 하나이다. 필자는 재귀함수를 이용한 dfs가 제일 편하고 익숙해서 이걸로 해결했다. 1. N x M 크기의 int형 배열 2개를 만들어준다. 배추밭(map)과 방문 여부(check)를 기록할 배열이다. 2. 모든 배추밭을 다 돌면서 방문하지않은 곳의 인접한 배추를 찾으면 된다. if (x < map.length-1 && map[x+1][y] == 1 && che..

[엑셀] 데이터 중 빈 셀이 포함된 모든 행 삭제하는 방법

엑셀 작업을 하다보면 데이터 중간에 있는 빈 셀을 찾아서 모두 삭제해야되는 경우가 있습니다. 이러한 경우 하나씩 찾아서 삭제한다는 것은 매우 비효율적인 방법인데요. 엑셀에서는 한 번에 빈 셀이 포함된 행을 다 지울 수 있는 기능이 있습니다. 지금부터 그 기능에 대해서 알아보겠습니다. 우선 예시 데이터를 보겠습니다. 아래의 데이터는 임의로 입력한 데이터이기 때문에 현실과 무관합니다. [회사대출] 열에서 빈 셀을 찾아서 모두 삭제하려면 매우 번거롭습니다. 1. [찾기 및 선택] 메뉴에서 [찾기] - [이동 옵션]을 선택한다. 2. [빈 셀]을 선택 후 확인을 누르면 선택한 영역에 모든 빈 셀만 멀티 선택된다. 3. 멀티 선택된 빈 셀에서 오른쪽 클릭을 누르고 [삭제]를 클릭한다. 4. [행 전체]를 선택 후..

ITQ/엑셀 2022.09.17

[백준]JAVA - 13305번: 주유소

https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 풀이 문제 설명이 매우 길어서 어렵게 느껴지지만 생각보다 쉬운 문제이다. N개의 도시와 N-1개의 도로가 있다. 그리고 도시에는 리터당 가격이 적혀있고 1리터당 1km를 갈 수 있다. 최소한의 비용으로 도시 A부터 D까지 가려면 어떻게 해야 될까? 바로 리터당 가격이 저렴한 기름을 넣는 것이다. 예제를 한 번 풀어보겠다. 첫 번째 도시에서 두 번째 도시로 가려면 5원짜리 기름을 2L..

[백준]JAVA - 1931번: 회의실 배정

https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 회의가 겹치지않도록 최대한 많은 회의를 배정하는 게 이 문제의 목표이다. 쉽게 말해서 이전 회의 종료 시간과 이후 회의 시작 시간이 겹치지 않으면 된다. 그리고 최대한 많은 회의를 하려면 종료 시간이 짧은 회의를 선택해야한다. 우선 문제를 쉽게 해결하기 위해서 종료 시간을 오름차순으로 정렬해야한다. Arrays.sort(times, new Comparator() { @Override public int compare(int[] o1, int[] o2) { // 종료 시간이 같다면 시작 시간이 빠른순으로 정렬..

[백준]JAVA - 1541번: 잃어버린 괄호

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이 이번 문제는 잘 이해한다면 쉽게 풀 수 있다고 생각한다. 55-50+40 어떻게 하면 최솟값을 만들 수 있을까? 최솟값을 만들려면 최대한 큰 값을 빼주면 된다. 즉, 덧셈을 먼저 진행한 후에 뺄셈을 진행하면 된다. 1. 공식에서 -로 분리한다. String[] str = br.readLine().split("-"); 2. 이후에 +를 분리해서 값을 더해준다. for (int i=0; i

[백준]JAVA - 2839번: 설탕 배달

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 풀이 이번 문제는 그냥 수학적 사고 테스트 문제이다. 3kg과 5kg 두 가지의 설탕 봉지를 이용해서 배달하려는 무게를 정확하게 맞추어 봉지의 개수를 최소한으로 하는 게 목표이다. 처음엔 문제를 너무 어렵게 생각했었다. 간단하게 생각해서 5kg의 설탕 봉지를 많이 사용하면 그만큼 봉지의 개수를 최소한으로 할 수 있다는 걸 생각하지 못 했다. 이걸 알게 된 후에는 문제가 엄청 쉬워졌다. 그냥 배달하려는 무게가..

[백준]JAVA - 10815번: 숫자 카드

https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이 카운팅 정렬 형식으로 문제를 해결할 수 있지만 이분 탐색으로 분류되어 있기 때문에 이분 탐색을 이용해서 풀어보려고한다. 이분 탐색은 중간 위치 값과 목표 위치 값을 비교하면서 반으로 줄여나가는 방식인데 자바에서는 메서드 하나로 귀찮은 이분 탐색 코드를 안할 수 있다. 바로 Arrays.binarySearch() 메서드인데 이분 탐색의 기본 조건과 같이 배열을 오..

알고리즘/정렬 2022.09.15

이분 탐색 Arrays.binarySearch() 메서드 정의 및 사용 방법

알고리즘 문제를 풀다보면 이분 탐색을 이용한 문제를 많이 접할 수 있습니다. 이분 탐색이란 오름차순으로 정렬된 배열에서 반으로 쪼개면서 특정한 값을 찾아내는 알고리즘입니다. 이분 탐색 과정 목표값은 42로 설정하고 아래와 같은 배열이 있다고 가정해보겠습니다. 1. 배열의 중간 '25'을 기준으로 목표값 '42'의 크기를 비교한다. 2. 목표값 '42'가 중간값 '25'보다 크기 때문에 mid+1을 low로 변경 후 다시 중간값을 찾는다. 3. 목표값 '42'가 중간값 '59'보다 작기 때문에 mid-1을 high로 변경 후 다시 중간값을 찾는다. 4. 목표값인 '42'가 중간값이랑 일치. ※ 위와 같이 계속 중간값(mid)을 기준으로 크기를 비교해서 low값과 high값을 ±1을 시키면서 일치하게 만든다..

알고리즘/이론 2022.09.14

[백준]JAVA - 2309번: 일곱 난쟁이

https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀이 브루트 포스 기법을 이용해서 해결하는 알고리즘 문제라고 한다. 사실 브루트 포스 기법이 뭔지 잘 모르는 상태에서 풀었다... 문제를 푸는 순서는 아래와 같다. 1. 9명의 난쟁이 키를 더한다. 2. 난쟁이 키를 오름차순으로 정렬한다. 3. 9명의 난쟁이 키를 합한 값에서 100을 뺀 후, 가짜 난쟁이 두 명을 더한 값과 비교한다. import java.io.*; import java.util.*; p..

[Windows10] 파일 확장자 숨김/표시하는 방법

윈도우는 기본적으로 파일 확장자명을 숨긴 상태로 표시합니다. 사실 확장자명이 없어도 불편함없이 컴퓨터를 이용할 수 있고 아이콘 모양으로 어느정도 구분이 가능합니다. 하지만 필요한 순간이 있고 궁금하신 분도 계실 수 있으니까 확장자를 숨기거나 표시하는 방법에 대해서 알아보겠습니다. 위 그림처럼 확장자명이 보이는 파일들도 있지만 대부분이 보이지 않고 있습니다. 어떤 확장자인지 궁금하다면 아래를 따라해주시면 됩니다. 1. 탐색기 상단에 [보기] 탭을 클릭한다. 2. [표시/숨기기] 탭에서 파일 확장명을 체크한다. 3. 파일 확장자 표시 완료

IT 정보/Windows 2022.09.12
반응형