본문 바로가기

알고리즘77

[자료구조] 자료구조와 알고리즘의 정의 자료구조 (Data Structure) 컴퓨터에 자료를 효율적으로 저장하는 방식 메모리 절약 (공간 복잡도), 실행 시간 단축 (시간 복잡도)의 역할 알고리즘 (Algorithm) 컴퓨터 명령 자체의 효율성을 증가시키기 위한 절차 혹은 방법 2020. 8. 25.
[알고리즘] 잃어버린 괄호 (백준 1541번) 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net +, - 연산자로만 이루어진 수식에서 적절하게 괄호를 쳐서 최소값을 찾아내야하는 문제다. 만약 1+2+3-4+5+6-7 가 있다면 괄호 없이 계산할 시 합은 6이다. 하지만 만약 1+2+3-(4+5+6)-7 로 괄호를 쳐서 계산하게 되면 -16이 답이된다. 즉 -부호가 붙은 뒤의 수들을 괄호로 묶으면 최소값이 된다. (이중괄호는 고려하지 않는다) "-" 연산자를 기준으로 String을 split한다. split된 token들을 반복문을 돌려서 token마다.. 2020. 8. 24.
[알고리즘] 체스판 하얀 칸 (백준 1100번) 1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램�� www.acmicpc.net 사실 이 문제는 굉장히 쉬운지라 어떻게 풀어도 상관은 없지만 다른 사람들 코드를 보니 의외로 이 사실을 모르는 것 같아서 한 번 올려본다. Solution 만약 이런 체스판이 있다고 쳤을 때 (가로 index + 세로 index), 즉 i + j 가 흰 칸은 짝수이고 검은 칸은 홀 수 이다. 그래서 굳이 i 가 짝수일 때, 홀수 일 때 경우, j가 짝수 혹은 홀수 일 때 경우를 분기할 필요 없이 (i+j)가 짝수, 홀수인 경우로만 분기하면 된다. impor.. 2020. 8. 24.
[알고리즘] 크로아티아 알파벳 (백준 2941번) 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= www.acmicpc.net 일종의 문자 패턴 매칭? 부류의 문제라고도 볼 수 있을 듯 한데 나같은 경우엔 stack을 이용해서 풀었으나 다른 사람들의 코드를 보니 String의 replace 메서드를 이용해서 푼 사람들이 많았다. (생각도 못했음...) Solution 1) Stack 사용 list라는 배열에 크로아티아 알파벳을 전부 집어넣는다. isCroaticAlphabet() 메서드를 만들어서 word가 list 안에 있으면 크로아티아 알파벳으로 판.. 2020. 8. 24.