전체 글 63

[BOJ5052/Java] 전화번호 목록

문제 요약 https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 이 문제는 한 번호가 다른 번호의 접두어인 경우가 없는(문제에서는 일관성이 있다고 한다) 전화번호 목록인지를 판단하는 문제이다. 접두어..를 주의깊게 생각해보자.. 입/출력 입출력에서 단순히 하나의 번호와 다른 모든 번호를 비교해가면서 찾아간다면 50*10000*10000 = 약 50억인가.. 시간초과 날 것이 뻔하므로 뭔가 다른 방법을 찾아야 한다. 접근 아이디..

카테고리 없음 2023.09.09

[BOJ2671/Java]잠수함식별

문제 요약 https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net 해당 문제는 정규표현식을 적용해(문제에서의 표현은 조금 다르긴 함) 입력된 문자열이 잠수함 패턴을 가지고 있는지를 확인하는 문제이다. 정규표현식은 볼 때마다 헷갈리는 것 같다.. 입/출력 입출력은 간단하다 스트링 1개, 출력도 "SUBMARINE"이나 "NOISE" 하나만 출력하면 된다. 즉, 중요한 것은 정규표현식을 알고있느냐.. 접근방식 정규표현식을 잘 알고 있다면 끝! 구현 코드 ..

알고리즘 2023.09.06

[BOJ2342/Java] Dance Dance Revolution

문제 요약 https://www.acmicpc.net/problem/2342 2342번: Dance Dance Revolution 입력은 지시 사항으로 이루어진다. 각각의 지시 사항은 하나의 수열로 이루어진다. 각각의 수열은 1, 2, 3, 4의 숫자들로 이루어지고, 이 숫자들은 각각의 방향을 나타낸다. 그리고 0은 수열의 마 www.acmicpc.net ddr 게임에서 어떻게 하면 발을 효율적으로 옮길 수 있을까.. 최소한의 힘을 써서 옮길 수 있을까 알아보는 문제 게임에서 1,2,3,4 네 개의 방향키를 누르는데, 한번에 한쪽발만 움직일 수 있고, 발을 어디로 움직이는지에 따라서 그때그때 드는 힘이 다르다. 입/출력 접근 아이디어 생각보다 고려해야하는 사항이 많다.. 그래서 dp, 메모이제이션을 이용..

알고리즘 2023.08.31

[BOJ20056/Java] 마법사 상어와 파이어볼

문제 요약 https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 문제에서 봐야하는 유의사항이 많기 때문에 주의가 필요한 문제이다. 하나하나 빠지지 않고 체크하는 것이 중요. 1. map의 연결(1번 행과 N번 행, 1번 열과 N번 열) 2. 파이어볼의 이동 방향 3. 파이어볼 이동 방식 4. 파이어볼 합치고 나누기 - 질량 - 속력 - 방향 - 소멸 입/출력 -> 파이어볼 정보 순서가 r, c, m, s, d ..

알고리즘 2023.08.30

[BOJ3109/ Java]빵집

문제 요약 3109번: 빵집 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 빵집? 가스관 훔치기아닌가?ㅋㅅㅋ 문제에서의 이동은 항상 첫번째열에서 출발해서 마지막 열로 이동한다. 즉, 우상 대각선, 오른쪽, 우하 대각선으로만 이동한다. 또한 가스관은 서로 겹칠 수 없다. 각 칸을 지나는 파이프는 하나이어야 한다. 입/출력 입력 지도의 크기 R과 C 빵집 근처의 모습이 ‘.’과 ‘x’로 나타난다. ‘.’은 지나갈 수 있는 곳, ‘x’는 건너갈 수 없는 곳이다. 처음과 마지막열은 항상 모두 ‘.’이다. 출력 첫째 줄에 원웅이가 ..

알고리즘 2023.08.17

[BOJ 16234/Java]인구 이동

문제 요약 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제를 봤을 때 어... 시뮬레이션인가..? 그냥 다 해보면 되는건가..? 했는데 입출력 봤을 때 나라 크기가 50*50이 최대길래 시뮬레이션 맞네 하고 풀었다. 이 문제에서 포인트는 연합이 될 국가를 찾아서 인구수 업데이트를 효율적으로 하는 것이라고 생각했다. 연합이 확정되면 연합에 포함되는 인구수도 확정되는데, 이를 연합을 찾으면서 한번에 계산할 수 있으면 속도가 더 ..

알고리즘 2023.08.17

[boj2493/Java] 탑

BOJ2493. 탑 문제 요약 2493번: 탑 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 자신과 가장 가까운 자기보다 높은 탑을 찾는 문제 문제 입/출력 N개의 서로 다른 높이를 가진 탑의 높이가 입력으로 들어오고 신호를 받는 탑이 있다면 해당 탑의 index를 출력 없으면 0 입력 제한 크기 N이 500,000이하인데 단순히 자기보다 앞에 입력된 수들 중에서 제일 가까운 자기보다 키가 큰 탑을 찾는다면 시간 초과가 날 것이 분명함… → 입력과 동시에 처리할 수 있는 방법을 찾아야… 접근 아이디어 pa..

알고리즘 2023.08.07

[boj21758/Java] 꿀 따기

https://www.acmicpc.net/problem/21758 21758번: 꿀 따기 첫 번째 줄에 가능한 최대의 꿀의 양을 출력한다. www.acmicpc.net 이 문제에서 탐색을 통해서 구할 수 있는 최대의 꿀 양을 찾기 위해서 꿀벌1, 꿀벌2, 벌통을 움직여야 한다. 벌통과 꿀벌의 위치 관계에 따라서 꿀벌의 이동 방향이 달라지는데 벌통, 꿀벌1, 꿀벌2를 모두 이동시키려면 반복문을 3중으로 써야하고 탐색할 필요 없는 경우까지 탐색해야하므로 최대한 반복문의 사용을 줄이기 위해서 케이스를 3개로 나눠서 1. 벌통이 오른쪽 끝에 고정되어 있는 경우 - 벌 두마리가 전부 벌통보다 왼쪽에 있는 경우 제일 많은 양의 벌꿀을 모으기 위해서는 벌통이 가장 오른쪽에 있어야 하고 한마리의 벌은 가장 왼쪽에 고..

알고리즘 2023.07.31