분류 전체보기

백준 15903 https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 풀이 전 나의 생각 이 문제에서 최소값을 구하려면 단순하게 가장 최소가 되는 값들만 두 개 골라서 계속 더해주고 덮어쓰고 하면 해결된다. 하지만 최악의 수를 가정해보면 1000개의 카드, 합쳐질 횟수 15 * 1000 = 15000번, 1000000이 적힌 모든 숫자 카드 이 3가지를 계산하여 나오는 값을 과연 int로 처리할 수 있을까? 당연..
백준 1541 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이 전 나의 생각 이 문제는 괄호를 적절하게 사용하여 최소값을 구하는 문제다. 예를 들어 55-50+40-30+20 이란 식이 있다고 가정하자. 최소값을 구하기 위해선 음수값을 최대로 올려야 한다. -> '-' 와 관련된 부분을 건들이면 될 것이다. 그럼 '-' 뒤에 있는 값들을 더해서 음수를 크게 만들어 보면 55 - (50 + 40) - (30 + 20) 이란 결과가 나오..
백준 14503 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 풀이 전 나의 생각 오랜만에 푸는 양방향 탐색이어서 굉장히 헷갈렸다.. 정말 조건 그대로 코드를 짜면 풀리는 문제이긴 한데 엄청 헤멨던 부분이 있어서 인터넷을 찾아보고 겨우겨우 풀었다. 우선 이 문제에서 중요한 부분은 1. 양방향 탐색은 현재 로봇 청소기 방향을 기준으로 하니 dx, dy 값을 0, 1, 2, 3의 각 방향에 맞게 ..
백준 10101 https://www.acmicpc.net/problem/10101 10101번: 삼각형 외우기 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. www.acmicpc.net 풀이 전 내 생각 브론즈 4 문제지만 웬만한 브론즈 상위 문제보다 값진 문제라고 생각해서 풀어봤다. 낮은 난이도의 문제 답게 if문에 무엇을 쓰면 될지 친절히 알려준다. 하지만 여기서 중요한건 if문을 정확하게 써서 오탈 값이 나오지 않게 하는 것이 중요하다. 상위권의 문제를 풀다보면 if문 조건 하나를 잘못적어서 많이 헤멜수도 있기 때문에 정확하게 어떤 조건을 적어야 할지 미리 생각해보고 작성하는 것이 중요하다. 풀이 #include #include #i..
백준 1992 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 풀이 전 내 생각 나는 트리라고 하길래 처음엔 트리 자료구조를 써서 푸는 건줄 알았다.. 각설하고 문제를 보면 이미지를 압축하는데 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 순으로 진행한다고 한다. 대신 0과 1이 섞여있으면 전체를 한번 더 나눈 후 반복하여 이미지를 압축한다. 뭔가 계속 나누는걸 보니 재귀를 사용한다는 것을 예측할 수 있다. 그러면 네모 모양의 4..
백준 10799 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 풀이 전 내 생각 우선 쇠막대기가 무엇을 의미하는지 고민을 하면 쉽게 풀리는 문제다. 그림을 보면 쇠막대기의 길이는 괄호가 시작하고 끝나는 부분을 뜻한다. 그럼 여러개의 괄호 생명주기가 생성되고 '()' 라는 레이저를 쏜다는 의미는 현재까지 쌓여있는 괄호 생명주기의 개수 를 의미한다. 예를 들어 -> 방향 기준으로 '((()' 는 괄호 생명주기의 시작인 '('가 레이저 전까지 2개 존재한다...
· TIL/Unity
최종프로젝트를 진행하면서 관련된 데이터 스프레드 시트 파일을 Json화 하는 작업을 Tool이용하여 진행했었다. 하지만 Loading을 하면서 자동적으로 스프레드시트 데이터를 불러오는 방법을 채택했고 그와 관련된 기능을 구현했다. 그곳에서 async와 await를 주로 사용하며 작업을 진행했는데 이 개념에 대해 오늘 정리하고자 한다. async란? Asynchronous의 줄임말로 비동기 처리 구현을 가능하게 해주는 기능이다. 주로 Task와 같이 async Task ~~의 형태로 사용된다. Task -> 작업의 단위를 반환해주는 변수 await란? 작업을 기다린다는 의미로 async와 같이 쓰이는 기능이다. 아무리 비동기 작업이라 한들 async 기능들이 모두 완료되지 않고 함수가 종료될 수 있는 문제..
· TIL/C++
백준 1439 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. 예를 들어 S=0001100 일 때, 전체를 뒤집으면 1110011이 된다. 4번째 문자부터 5번째 문..
Sh_Blog
'분류 전체보기' 카테고리의 글 목록 (16 Page)