문제풀이
-
[프로그래머스]기둥과 보 설치 - JAVA문제풀이/프로그래머스 2021. 3. 1. 13:51
문제 programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 풀이 구현/시뮬레이션 문제이다. 각각의 동작을 따로따로 생각하고 분리하여 풀면 쉽지만 처음에..
-
[백준]1005: ACM Craft - JAVA문제풀이/백준 2021. 2. 28. 17:19
[백준]1005: ACM Craft www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N 과 건물간의 건설순서규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 풀이 위상 정렬을 하면서 cost값을 계산해 주어야 하는 문제이다. 위상정렬 알고리즘에 따라 순서를 정하고, 순서가 결정될 때마다 cost값을 계산해 준다. 이때 중요한 점은 문제에서는 최소 비용을 구하라고 하였지만, 결국에 따지고 보면 최대 cost를 구해야 한다는 점이다. 위의 경우에 4를 건설하는 건설시간은 120초가 된다. 그 이유는 문제의 조건에 따라 4를 위해..
-
[백준]1918: 후위 표기식 - JAVA문제풀이/백준 2021. 2. 28. 16:20
[백준]1918: 후위 표기식 www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 풀이 후위 표기식 문제이다! 개념상으로는 알고 있었는데 구현하는 방법을 까먹어서 예제 입력을 따라가보면서 어떻게 구현할지 생각해 보았고, 숫자가 들어오면 그대로 출력하고, 연산자가 들어오면 스택에 담아서 괄호와 우선순위 연산을 하면서 출력해 주면 된다는 결론을 얻엇다. 1. 괄호 연산 - 연산자 입력으로 괄호가 들어왔을 때는 다음과 같이 처리한다. case 1) '('괄호..
-
[프로그래머스]IS NULL - NULL 처리하기문제풀이/SQL 2021. 2. 28. 14:03
NULL 처리하기 programmers.co.kr/learn/courses/30/lessons/59410 코딩테스트 연습 - NULL 처리하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 IFNULL(컬럼명, '바꿀 데이터 명): 컬럼 값이 NULL이면 '바꿀 데이터'로 값을 변경해 준다. MYSQL에서는 IFNULL, ORACLE에서는 NVL을 사용하면된다. 사용법은 동일하다. 코드 1 SELECT ANIMAL_TYPE, IF..
-
[프로그래머스]IS NULL - 이름이 있는 동물의 아이디문제풀이/SQL 2021. 2. 28. 13:47
이름이 있는 동물의 아이디 programmers.co.kr/learn/courses/30/lessons/59407 코딩테스트 연습 - 이름이 있는 동물의 아이디 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 IS NOT NULL: 조건문에 사용되며 해당 컬럼 값이 NULL이 아닌지 확인한다. 코드 1 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL; cs
-
[프로그래머스]IS NULL - 이름이 없는 동물의 아이디문제풀이/SQL 2021. 2. 28. 13:42
이름이 없는 동물의 아이디 programmers.co.kr/learn/courses/30/lessons/59039 코딩테스트 연습 - 이름이 없는 동물의 아이디 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 IS NULL: 조건문에 사용되며 해당 컬럼이 NULL인지 확인한다. 코드 1 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL; cs
-
[프로그래머스]단어 변환 - JAVA문제풀이/프로그래머스 2021. 2. 28. 13:26
문제 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 풀이 가장 짧은 변환 과정을 찾는 것이므로 BFS를 이용해서 탐색하였다. Node를 만들어서 현재 word의 정보와 현재까지의 count를 저장해 주었고 이를 q에 넣어주었다. 현재 word가 다음에 변환할 수 있는 words를 찾아서 변환하였고, 현재 word가 target과 같아지면 현재 count를 반환하였다. 변환할 수 ..
-
[백준]2206: 벽 부수고 이동하기 - JAVA문제풀이/백준 2021. 2. 27. 17:00
[백준]2206: 벽 부수고 이동하기 www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 풀이 최단거리 문제이므로 BFS를 사용했다. 처음에는 boolean타입의 flag를 사용하여 벽을 부쉈는지 여부를 확인하였는데 이렇게 되면 벽을 부수지 않고 이동했을 때와 벽을 부수고 이동했을 때의 경로가 겹치게 되고, 최단거리더라도 더 이상 진행하지 못하게 되었다. 그래서 visited배열의 인덱스를 추가해서 벽을 부수지 않고 이동했을때의 방문 여..