본문 바로가기

전체 글19

알고리즘 문제를 푸는 마음가짐 1. 문제를 풀기전에 고민하는 시간, 구현하는 시간, 테스트 하는 시간을 1:1:1 비율로 한다. (되도록이면 고민하는 시간을 길게) 2. 고민하는 부분은 많지만 간략하게 다음과 같다. ① 어떠한 자료구조를 쓸지 (배열, 연결리스트, 어레이리스트) / (스택, 큐, 힙, 세그먼트 트리) ② 어떤 구조로 짤지 메소드의 위치, 틀 그리고 재귀로 구현할지 반복문으로 구현할지 속도 : 재귀 < 반복문 재귀는 자신이 할 일만하고 슥 넘기는 것이기 때문에 구현의 스케일이 큰 경우에 논리를 헷갈리지 않고 구현할 수 있다. ③ 어떠한 기술로 구현해야 할지 브루트포스, DFS, BFS, 백트래킹, 시뮬레이션, DP, 그리디 ④ 이렇게 구현하였을때 시간 복잡도가 어떻게 나오는지 10,000 * 10,000 = 100,00.. 2021. 2. 9.
백준 15683번 감시 www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 브루트포스를 통해 해결하는 문제입니다! 이전에 도전을 했었다가 실패한 문제인데 이번엔 해결하였습니다ㅎㅎ 구현한 부분은 다음과 같습니다. 브루트포스를 통해 CCTV의 방향 정해주기 현재 CCTV 위치와 빛을 쏠 방향을 입력해 빛을 쏘기 각 CCTV 유형마다 상태에 따른 빛을 쏘는 방향 구현 코드가 무지하게 길게 나오네요... 더 짧게 줄이는 방법이 있을지 고민해보아야겠습니다. import java.aw.. 2021. 1. 20.
백준 2309번 일곱 난쟁이 www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 브루트포스 문제입니다! 순열과 조합의 nCr에서 n이 9, r이 7인 경우를 구하는 것으로 9명의 난쟁이 중 7명을 골라 키의 합이 100인지 확인하는 문제였네요! 저는 재귀를 통해 해결하였습니다. import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Seve.. 2021. 1. 20.
백준 14500 테트로미노 www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 오늘 풀었던 문제는 테트로미노입니다. CE/IM 코딩테스트에 등장했던 문제라고 하니! 잘 풀어보는 것이 좋겠네요ㅎㅎ 사실 도전을 했는데 방법이 이게 맞나 저게 맞나...고민하다가 다른 사람 풀이방법을 보고 풀게 되었네요ㅠㅠ 다음에 다시 한번 풀어봐야겠습니다. 그리고 백준 문제 분류에서는 브루트포스라고 분류가 되어있는데... DFS에 분류를 하는것이 더 맞지 않나 싶네요 문제에 대한 설명을 하면 이렇습니다. 각 .. 2021. 1. 20.