백준 10

[10월 3주차] 알고리즘

1. 흙길 보수하기 - 실버 1 출처 - https://www.acmicpc.net/problem/1911 1911번: 흙길 보수하기 어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1 = idx){ while(arr[i][1] > idx){ idx += l; // 하나 깔아주고 널판지 길이만큼 건너뛴다. ++ans; } } } System.out.println(ans); } } int[] 배열을 정렬하는 메서드를 오버라이드한다. Arrays.sort(배열, "new Comparator....") 까지만 작성해도 자동 완성으로 추천된다. 그럼 1차로는 0열 기준, 다음으로는 1열 기준으로 정렬되도록 구현한다. 현재 지나는 인덱스를 뜻하는 idx를 변수로 만든..

카테고리 없음 2022.10.12

2022-08-28 [11회차] 알고리즘 스터디

1. 팔 - 실버1 08-28 일 출처 https://www.acmicpc.net/problem/1105 1105번: 팔 첫째 줄에 L과 R이 주어진다. L은 2,000,000,000보다 작거나 같은 자연수이고, R은 L보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net MySol) ======= 미해결 코드 ======== import java.util.Scanner; public class Test { static int findEight(String s){ int eightCnt = 0; for(char c : s.toCharArray()) { if (c == '8') { ++eightCnt; } } return eightCnt; } public s..

[백준][프로그래머스] 다이나믹 프로그래밍

1. 등굣길 - lv 3 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Sol) // 프로그래머스 - 등굣길 import java.util.Arrays; public class Practice2 { public static int solution(int m, int n, int[][] puddles) { int mod = 1000000007; int[][] board = new int[n + 1][m + 1]; for(int i = 0;..

2022-06-29 [5회차] 알고리즘 스터디

1. 색종이 만들기 - 실버 2 출처: 백준 2630번 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net MySol) - while문으로 작성하려 해서 결국 못 풀었다. - 재귀함수, 백트래킹을 이용해서 풀어야한다. Sol) 스터디원 코드 - 종이를 자를지 말지 결정한다. - 재귀함수 인덱스 두 가지를 넘긴다. - 두 번째 방법: cut2() -> gap은 간격의 길이 -> boolean cutFlag: 잘라야 하는지 ..

2022-06-22 [3회차] 알고리즘 스터디

1.스도쿠 - DFS, 재귀함수 (골드 4) https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net Sol) 스터디원 코드 - 스터디원 블로그 /** 0 4 0 0 0 0 2 0 0 0 6 0 0 0 5 0 0 0 2 0 5 0 8 0 0 0 7 0 0 6 0 0 0 0 0 0 5 0 7 0 0 1 9 0 0 0 0 0 0 4 0 0 1 0 0 0 0 3 0 0 0 0 8 0 2 0 0 0 0 0 0 0 9 0 1 0 0 4 7 0 0 * 0 0 0 ..

Baek joon 5052 전화 번호

Ex) 전화 번호 목록 - sort와 startsWith를 이용한다. - phone_book[i].startsWith(phone_book[i-1]) : phone_book[i-1]가 phone_book[i]의 접두사인지 확인한다. - Arrays.sort(배열명): 배열을 오름차순으로 정렬한다. Sol) import java.util.*; class Solution { public boolean solution(String[] phone_book) { Arrays.sort(phone_book); // sort로 정렬하면 119와 1195524421이 옆자리에 정렬된다. for(int i = 1; i < phone_book.length; ++i){ //따라서, 바로 옆자리에 있는 수가 접두사인지 확인하면 ..

Baekjoon 9375번 패션왕 신혜빈

Ex) 각 테스트 케이스에 대해 해빈이가 알몸이 아닌 상태로 의상을 입을 수 있는 경우를 출력하시오. 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까? 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다.- - 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다. - 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을..

Backjoon 7576 BFS 토마토

Ex) 며칠 후에 상자 안의 토마토가 모두 익는지 구하라. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마토를 창고에 보관하는 격자모양의 상자들의 크기와 익은 토마토들과 익지 않은 토마토들의 정보가 주어졌을 때, 며칠이 지나면 토마토들이 모두..

Code up 4714 BAEKJOON 2458 키 순서

Ex) 자신이 키가 몇 번째인지 알 수 있는 학생이 모두 몇 명인지를 출력한다. - 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. - 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 6번만 키를 비교하였고, 그 결과가 다음과 같다고 하자. 1번 학생의 키 < 5번 학생의 키 3번 학생의 키 < 4번 학생의 키 5번 학생의 키 < 4번 학생의 키 4번 학생의 키 < 2번 학생의 키 4번 학생의 키 < 6번 학생의 키 5번 학생의 키 < 2번 학생의 키 - 이 비교 결과로부터 모든 학생 중에서 키가 가장 작은 학생부터 자신이 몇 번째인지 알 수 있는 학생들도 있고 그렇지 못한 학생들도 있다는 사실을 아래처럼 ..

Codeup 4503 BaekJoon 2606 바이러스 DFS

Ex) 1번 컴퓨터가 웜 바이러스에 걸렸을 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 첫째 줄에 출력한다. - 신종 바이러스가 네트워크를 통해 전파된다. 한 컴퓨터가 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결된 모든 컴퓨터는 바이러스에 걸리게 된다. - 첫째 줄에는 컴퓨터의 수가 주어진다. - 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 순서쌍의 수, 셋째 줄에는 순서쌍이 나열되어있다. import java.util.*; public class Virus { static int MAX_COUNT = 101; static int[][] AdjMat = new int[MAX_COUNT][MAX_COUNT]; static int[] Visited = new int[M..