분류 전체보기
-
[BOJ]백준 1600번: 말이 되고픈 원숭이/BFSProblem Solving/BOJ(백준) 2021. 1. 20. 00:08
www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 말이 되고픈 원숭이의 소원을 들어주는 문제 이제 백준에서 런타임에러의 원인을 알려주는데 자꾸 DoubleFree 에러가 떠서 내 코드엔 동적할당이 없는데 왜 뜨지??싶었던 문제 하지만!!!!!!!!!!!!문제는!!!!!!!!!!! 함수에서 반환을 제대로 안 해줬던 것이엇다 모든 케이스에서 함수 값을 반환하지 않을 때 위와 같은 런타임에러가 발생할 수 있으니 나와 같은 문제를 겪었던 사람은 참고하..
-
[C] Circular array기반의 Queue 구현Programming/C++ 2021. 1. 19. 21:19
자료구조를 처음 구현할 때, C를 사용하는 사람들은 보통 array를 많이 사용한다. Stack과 Queue에는 원소의 위치를 가리키는 변수 top, front, rear가 존재한다. 이 때, Stack의 마지막 원소의 위치를 가리키는 top은 원소의 증감에 따라 함께 증가하고 감소하기에 문제가 없다. 하지만 Queue의 front와 rear는 연산을 반복하면서 값이 계속해서 증가한다. 따라서 단순한 array로 Queue를 구현하면, 원소의 push와 pop을 반복하면서 앞의 공간은 사용하지 않아 낭비되고 뒤의 공간은 부족할 수 밖에 없다. 따라서 Circular Array를 통해 Queue를 구현하는 방법이 존재한다. Circular Array란, 일반적으로 정의하는 선형의 array가 아니라 '배열..
-
[BOJ]백준 11723번: 집합/BitmaskProblem Solving/BOJ(백준) 2021. 1. 18. 23:31
www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 수업 때 비트마스킹 언급된 기념으로 풀어본 비트마스킹 문제 비트 연산을 연습해볼 수 있는 좋은 문제였다 !! 1️⃣ 특정 bit(n bit)을 1로 바꾸고 싶을 때 bit |= (1
-
SWEA 1288번: 새로운 불면증 치료법/BitmaskProblem Solving/SWEA 2021. 1. 18. 00:08
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18_yw6I9MCFAZN&categoryId=AV18_yw6I9MCFAZN&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 숫자의 출현 여부를 체크하는 문제 스터디원께서 비트마스킹을 이용해서 체크 여부를 관리한게 흥미로워서 코드를 루팡해봤다. 숫자를 계속해서 반복문을 돌리면서 left shift연산을 이용해서 숫자를 체크하고, 모든 숫자 비트가 1이면 (10자리가 모두 1이면, = 1023이면) 반복을 종료한다. #include int tc; int m..
-
SWEA 1961번: 숫자 배열 회전Problem Solving/SWEA 2021. 1. 16. 22:41
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pq-OKAVYDFAUq&categoryId=AV5Pq-OKAVYDFAUq&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코딩테스트를 준비하기 위해서라면 꼭 ❗❗❗❗❗❗❗❗❗❗❗❗ 알아야 하는 배열 회전 구현 위와 같은 배열이 있다고 가정할 때⬅⬆⬇➡ 90도 회전된 배열은 아래 방향(⬇)으로 인덱스 값이 증가하면서, 왼쪽 방향(⬅)으로 인덱스가 증가한다. 또한 기존의 row방향이 col방향, col방향이 row 방향으로 바뀌었으므로 90_degree_..
-
SWEA 2001번: 파리 퇴치/DPProblem Solving/SWEA 2021. 1. 16. 00:51
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq&categoryId=AV5PzOCKAigDFAUq&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com N과 M이 주어졌을 때 N*N배열에서, M*M의 부분합이 가장 큰 구간을 찾는 문제 부분합은 뭐다? DP다 그렇기 때문에 원래 배열의 값을 저장하는 array배열, (0,0)~(n,n)의 직사각형 합을 저장하는 sum배열 두 개를 선언했다 특정 좌표의 sum 값은 sum(i,j) = sum(i-1,j) + sum(i,j-1) - s..
-
[BOJ]백준 17928번: 오큰수/StackProblem Solving/BOJ(백준) 2021. 1. 13. 23:22
www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 수열이 있을 때, 각 원소에 대해 오큰수를 구하는 문제 오큰수란? 해당 원소를 Ai라 할 때 Ai의 오른쪽에 위치한 원소들 중 index가 가장 작으면서 Ai보다 큰 원소를 나타낸다 예제에 대해, [3 5 2 7]을 마지막 원소부터 보면 - 7: 오른쪽에 원소가 없으므로 -1 - 2: 바로 오른쪽에 7이 2보다 크므로 7 - 5: 한 칸 건너뛰어서 7이 5보다 크므로 7 - 3: 7이 가장 크지만 5가 7보다 왼쪽에 있으므로..
-
Postfix Calculator(후위 표기식 계산기) 구현Algorithm 2021. 1. 13. 22:42
postfix란 뭘까 수식의 종류에는 prefix, infix, postfix 세 가지가 존재한다 이것은 연산자가 피연산자들 사이에서 어느 위치에 존재하느냐에 따라 나뉜다 우리는 일상생활에서 99.999999% Infix 방식을 이용해서 표기한다. 하지만 Infix방식에는 문제점이 존재한다 5+4*3 이라는 수식이 존재할 때, '*' 연산자가 '+' 연산자보다 우선순위가 높기 때문에 해당 수식을 먼저 계산해줘야 한다 하지만 이것은 계산을 하는 사람이 모든 수식을 차례로 읽은 뒤, 연산 순서를 임의로 정해야 한다. 그렇기 때문에 순차적으로 입력을 받고 이를 해결하는 컴퓨터의 계산 방식과는 약간 다르다. 컴퓨터는 postfix 연산 방식을 선호한다. 위의 수식을 postfix로 전환하면, 5 4 3 * + ..