전체 글

전체 글

    [백준(BOJ) / C][Silver Ⅳ] 9012번 : 괄호

    문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 간단한 구현 문제입니다. 괄호 '(' 를 +1, 괄호 ')' 를 -1 이라 하고 해당 괄호를 순서대로 계산을 합니다. 만약 계산도중 0 미만으로 내려가면 괄호가 이상하게 배치됐다는 뜻이므로 플래그를 1로 바꾸며 반복문을 나옵니다. 그리고 0미만으로 내려가지 않더라도 최종 결과가 0이 아니라면 '('가 배치된 만큼 ')'가 배치된것이 아니므로 틀린 배치 입니..

    [백준(BOJ) / C][Silver Ⅴ] 25644번 : 최대 상승

    문제 https://www.acmicpc.net/problem/25644 25644번: 최대 상승 미래를 예측하는 능력이 있는 정균이는 앞으로 $N$일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고 www.acmicpc.net 풀이 간단하게 ( 큰 수 - 작은 수 ) 의 결과를 출력하면 되는 문제입니다. 근데 조심해야할것은 ( 나중에 나온 큰수 - 처음 나온 작은 수 ) 의 계산을 여러번 하게되는데 '최대'한 이득을 보는 값을 출력하는 것이니. 현재 이득 값보다 크다면 result 값에 넣고 같거나 작으면 넣을필요가 없기때문에 삼항연산자를 사용하여 처리합니다. 소스코드 #include int main(voi..

    [백준(BOJ) / C][Bronze Ⅱ] 1152번 : 단어의 개수

    문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 풀이 공백까지 입력을 받기위해 %[^\n]을 이용하여 문자열을 받았다. 문자열을 for문으로 확인하기전에 만약 아무런 입력도 하지않고 엔터만 쳐 배열에 공백만 들어갈수있는 경우도 있기 때문에 길이가 1 이고 그 위치에 공백만 있다면 단어는 없는것이기에 0을 출력하고 프로그램을 종료 합니다. 만약 그것이 아니라면 문자열 처음부터 길이만큼 돌게되는데 맨 앞과 뒤에 공백이 들어갈수 있기때문에..

    [백준(BOJ) / C][Silver Ⅳ] 1158번 : 요세푸스 문제

    문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 이 문제는 원형 링크드 리스트를 사용하여 문제를 해결하였습니다. 리스트에 1,2,3,4 ... N 의 숫자를 넣은 후 K 만큼 옆으로 이동하여 그 숫자를 출력하고 리스트에서 제외한다. 이 행동을 리스트에 숫자가 다 없어질때까지 반복한다. 배열을 사용하여 해당 값을 넣은 뒤 for문으로 풀게되면 원형 링크드 리스트를 사용하는 것보다 시간이 3배 넘게 오래 걸리기때문에 효율적이지 못하다. 그러기에 큐(Queue)를 이용하거나 원형 링크드 리스트를 사용하는 것이 효율이 좋다. 소스코..