본문 바로가기

Algorithm/구현11

[백준] 14502번 : 연구소 (삼성 SW 역량 테스트) https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net #include #include #include #include using namespace std; int map[8][8]; int map_cp[8][8]; int dx[4] = { -1,1,0,0 }; int dy[4] = { 0,0,-1,1 }; int N, M; int ans=0; vector virus; void bfs() { queue q; for (int i = 0; i < virus.size(.. 2021. 11. 2.
[프로그래머스] 코딩테스트 고득점 Kit - 정렬 (JAVA) https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr int[][] a -> a.length : a의 길이 Arrays.copyOfRange(array,start,end) : array 배열의 start부터 end인덱스 전까지 복사 Arrays.sort(array) : array 오름차순 정렬 Arrays.sort(array,start,end) : 배열의 start부터 end전까지만 오름차순 정렬 Arrays.sort(array,Collections.reverseOrder()) :.. 2021. 10. 1.
[백준] 2671번 : 잠수함식별 (C++) https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net 2가지 방법을 이용하여 풀었다. 1. 문자열 처리 (이런 패턴을 찾아서 푸는걸 Finite Automata라고 부르는것 같다) 2. 정규표현식 Regex을 이용 이 문제에서는 (100~1~|01)~ 에 해당하는 패턴을 찾는 것이었다. 따라서, 모든 문자열은 100~1~ 와 01의 조합으로만 구성되어야 한다! 각각의 조합을 1번과 2번이라고 해보자. 1번 : 100~1~ 2번 : 01 맨 앞문자가 .. 2021. 9. 25.
[백준] 2003번 : 수들의 합 2 (C++) https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 연속된 숫자들의 부분합이 M이 되는 경우를 구하는 문제이다. for문으로 무작정 구현하면 시간초과가 나기 때문에, 두 포인터를 사용해서 효율성을 고려해야 하는 문제였다. (만약 주어진 숫자들이 자연수가 아니라면 두 포인터를 사용할 수 없다.) Two Pointers 는 1차원 배열에서 두 개의 포인터를 조작하여 원하는 결과를 얻는 알고리즘으로, 최악의 경우.. 2021. 9. 22.
[백준] 11005번 : 진법 변환 2 (C++, JAVA) https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 2가지 방법으로 풀어보았다. 기억해야할 것은 정수형 숫자에 + '0' 하면 '숫자' 꼴인 char형으로 변환이 되고 정수형 숫자 + 'A'를 하면 숫자만큼 알파벳이 증가한다. 예시) 0 + 'A' = 'A' 1 + 'A' = 'B' 2 + 'A' = 'C' 5 + '0' = '5' 6 + '0' = '6' #include #include using namespace std; int N, B;.. 2021. 9. 21.
[백준] 17837번 : 새로운 게임 2 (C++) (삼성 SW 역량테스트) https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 삼성 기출답게 빡구현 문제였다. 이 문제에서 핵심은 deque horse[12][12]를 통해 각 좌표마다 쌓여있는 말들의 번호를 저장하는 것이었다. vector가 아닌 deque를 사용한 이유는 말 이동 시 말의 순서를 유지해야했기 때문이다. 또 하나 신경썼던 부분은, 파랑색인 경우나 범위 밖인 경우를 제일 먼저 확인해서 방향을 바꾸어주었고, 새로운 방향으로 탐색했을때 또다시 범위밖이거나 파.. 2021. 9. 19.