알고리즘과 언어/문제풀이
-
C++) 프로그래머스 디스크 컨트롤러알고리즘과 언어/문제풀이 2022. 4. 28. 21:22
문제 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 내 풀이 솔직히 반신반의하며 방향을 설정해서 풀었는데 운이 좋아서 맞았다. 1) jobs를 들어온 순서대로 정렬하였으며 (job[0]을 오름차순으로) 2) while 문을 전체 job들이 모두 빠져나올 때까지 돌렸다. (job 하나가 완료될 때 마다 finishCount가 올라감) 3. while문 내에서는 3-1. 현재 시각 이하의 모든 Job들을 ..
-
C++ ) 백준 1743알고리즘과 언어/문제풀이 2022. 3. 23. 06:51
문제 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net N X M 맵에 상하좌우로 붙어있는 숫자들 중에 가장 큰 값(MAX)을 찾는 문제이다. 상하좌우 인접한 숫자들을 찾는 BFS를 사용해 풀었다. 로직 1. N X M 맵에 입력받기 (#은 1로, .은 0으로) 2. 좌표 y, x에 대하여 map이 '#'이거나 가보지 않은 곳이라면 checkmap에 가봤다고 표시하고 BFS 호출 3. Queue에 (y, ..
-
백준 16956 늑대와 양 c++ dfs, bfs알고리즘과 언어/문제풀이 2022. 1. 20. 13:54
https://www.acmicpc.net/problem/16956 16956번: 늑대와 양 크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게 www.acmicpc.net 예시 출력 때문에 헷갈렸으나, 울타리를 쳐서 늑대와 양이 만나지 못하게 하는 것이 가능하면 1, 불가능하면 0을 출력하는 문제였다. 그 아래 N X N map은 'D'가 어느 위치에 있던지 상관없이 1과 0만 잘 출력되면 통과한다. (예시에 대한 출력이 달라질 수 있음을 알려줬으면 더 쉽게 풀었을 것 같다.) 단순히 0과 1을 출력하기 위해서는 양의 상하좌우에 늑대가 있는지만 확인하면 된다. ..
-
프로그래머스) N개의 최소공배수 c++ 풀이알고리즘과 언어/문제풀이 2022. 1. 12. 17:02
문제 https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 주어진 숫자들의 최소공배수(모든 수들의 배수이나 가장 작은 수)를 구하는 문제이다. 내 풀이 최소공배수가 될 수 있는 숫자(Now)를 증가시키면서, 주어진 arr 내의 모든 요소들이 Now의 약수인지 (나눴을 때 0이 되는지) 확인했다. 숫자(Now)를 증가시키는 방법은, 가장 큰 수를 기점으로 2배, 3배, 4배..
-
프로그래머스) 최댓값과 최솟값 c++ 풀이알고리즘과 언어/문제풀이 2022. 1. 4. 17:38
문제 https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 문자열로 주어진 숫자들 중에서 가장 작은 값과 가장 큰 값을 문자열로 묶어 반환하는 문제다. 내 풀이 문자열을 순차적으로 숫자로 반환한다. 순차적으로 탐색하며 MIN 값과 MAX값을 경신하는 방법으로 풀었다. 내 로직 1. 임의의 최솟값 (-99999999) 최댓값 (99999999)을 설정한다. 2. 문자열을 탐색한다. 3 - ..
-
프로그래머스) 다음 큰 숫자알고리즘과 언어/문제풀이 2021. 12. 29. 15:56
문제 https://programmers.co.kr/learn/courses/30/lessons/12911?language=python3 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 3가지 조건을 만족하여 주어진 숫자보다 큰 숫자를 찾아야 한다. 내 풀이 1001110의 다음 숫자는 1010011이다. 1001110 1010011 다음과 같은 규칙을 발견했다. 1. 뒤에서부터 1이 존재하다가 (혹은 연속되었다가) 0이 되는 지점에 1을 넣어준다. 2. 나머지 1들은 뒤에 몰..
-
프로그래머스) 올바른 괄호 c++ 풀이알고리즘과 언어/문제풀이 2021. 12. 29. 13:33
문제 https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 괄호들이 string으로 주어졌을 때, 괄호들이 전체적으로 올바른지 확인하는 문제다. ( ( ) ) 은 올바르지만 ( ) ( 은 닫히지 않아서 올바르지 않고 ( ) ) 은 닫을 게 없는데 닫아서 올바르지 않다. ) ( 은 닫을 게 없는데 닫아서 올바르지 않고, 닫히지 않아서 올바르지 않다. 내 풀이 가장 먼저, ..