전체 글 63

[BOJ1339/Java] 단어 수학

1. 문제 요약 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 골드인..이유가 있었ㄷ... 초, 중등 수학에서 많이 하던 일인데 코딩으로 막상 옮기려니까 생각이 잘 안났음. 알파벳에 숫자를 대입하는데 어떤 수를 대입해야 모든 단어의 합이 최대가 될까? 미리 얘기하자면 문자 길이나 등장 횟수만 고려해서는 답이 안나왔다..(여러번의 시도가 여기 담겨있음) 2. 입/출력 입출력이 정말 짧다. 시간 신경쓰지말고 구현 아이디어에 집중해야 한다....

알고리즘 2023.09.27

[BOJ11501/Java] 주식

1. 문제요약 https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net 나도 미래를 알면 좋겠다.. 암튼 최대의 이익을 얻기 위해서는 각각의 날짜에 주식을 사야하는지, 팔아야하는지, 아니면 가만히 있어야하는지 판단해야 한다. 2. 입/출력 주가는 작지만 N도 크고 특히 출력에서 부호있는 64bit 정수형으로 표현 가능하다고 했다. int는 32bit이다.. 크기에 주의하자(이거때문에 틀렸습니다 받음..) 3. 접근 방식 앞에서부터 나가면서 ..

알고리즘 2023.09.26

[BOJ1022/Java] 소용돌이 예쁘게 출력하기

1. 문제 요약 정해진 규칙에 따라서 그려지는 소용돌이가 있고 그 중에서 필요한 부분만을 찾아 출력하는 문제이다 2. 입/출력 문제 제한범위가 조금 특이하다. r1,c1,r2,c2가 가질 수 있는 값은 넓지만 r2-r1, c2-c1이 가질 수 있는 값은 작다. 3. 만약 값들이 가질 수 있는 값의 최대범위에 맞춰서 배열 사이즈를 정하면 메모리 초과가 발생한다. 따라서 딱 필요한 만큼만 저장하는 것이 필요하다. 그래서 생각한 풀이 방법은 정해진범위까지 숫자를 탐색하는데 기록할 위치만 기록하자 이다. 중앙부에서부터 수를 늘리면서 범위안에 있으면 배열에 쓰고 아니면 말기! 4. 구현 코드 import java.io.BufferedReader; import java.io.IOException; import ja..

카테고리 없음 2023.09.22

[BOJ20437/Java] 문자열 게임 2

1. 문제 요약 https://www.acmicpc.net/problem/20437 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net 어떤 알파벳 문자가 정확히 K개가 포함된 문자열에 대하여... 그 길이가 최소인 것과 최대인 것을 찾는 것이다. 문제에서 4번 단계에서는 시작과 끝이 해당 문자이면서 K개를 포함하는 경우를 찾는데, 3번 단계에서는 따로 그런 설명이 없다. 근데 똑같은 문제임.. 길이가 최소인 것을 찾으려면 어쨌든 시작과 끝이 해당 문자이면서 K개를 포함하고 있을것! 그렇다면 우리는 문자가 언제..

알고리즘 2023.09.20

[BOJ2110/Java] 공유기 설치

1. 문제 요약 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net N개의 집 중에서 공유기를 설치할 C개의 집을 찾는다고 이해하면 제일 편한데 근데 이렇게 생각하면 조합이 떠오른다. 그치만 200,000개의 집 중에서 100,000개의 공유기를 설치할 집을 고른다? 말이 안된다.. 다른 방법을 찾아야 함 2. 입/출력 앞에서도 말했듯 조합으로 생각하기에는 숫자가 너무 크다.. 그렇다면 어떻게 해..

알고리즘 2023.09.20

[BOJ1283/Java] 단축키 지정

문제 요약 https://www.acmicpc.net/problem/1283 1283번: 단축키 지정 첫째 줄에 옵션의 개수 N(1 ≤ N ≤ 30)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄에 옵션을 나타내는 문자열이 입력되는데 하나의 옵션은 5개 이하의 단어로 표현되며, 각 단어 역시 10개 이하 www.acmicpc.net 문제를 이해하는 것은 어렵지 않았다. 다만 대소문자 처리가 복잡했을 뿐.. 문제에서 지정한 규칙에 따르면 이미 지정된 알파벳과 겹치지 않게 단축키를 지정해야했다. 일단 단어의 시작을 먼저 살펴보고 그 다음에는 단어의 중간글자들도 앞에서부터 차례대로 살펴본다. 등록할 수 있는 단어가 없다면 원형 그대로를 출력 입/출력 단축키로 지정된 알파벳 좌우에 대괄호! 접근 아이디어 일..

알고리즘 2023.09.19

[BOJ11049/Java] 행렬 곱셈 순

문제 요약 https://www.acmicpc.net/problem/11049 11049번: 행렬 곱셈 순서 첫째 줄에 입력으로 주어진 행렬을 곱하는데 필요한 곱셈 연산의 최솟값을 출력한다. 정답은 231-1 보다 작거나 같은 자연수이다. 또한, 최악의 순서로 연산해도 연산 횟수가 231-1보다 작거나 같 www.acmicpc.net 어렵다.. 행렬 곱셈도 이해하고 있고.. 순서에 따라서 필요한 연산 수가 달라진다는 것도 이해했으나.. 이걸 어떻게 최소의 연산을 생각하는가.. 이해가 가지 않았다... 입/출력 다행스럽게도 문제에서 결합법칙만 신경쓰면 된다. 행렬의 순서를 다시 배치하지는 않아도 된다. 입출력이 크지 않다고 생각할 수 있으나 행렬의 개수가 500개이고 어떤걸 먼저 계산할건지 하나하나 다 해..

알고리즘 2023.09.14

[BOJ1706/Java] 크로스워드

문제 요약과 접근 아이디어 https://www.acmicpc.net/problem/1706 1706번: 크로스워드 동혁이는 크로스워드 퍼즐을 좋아한다. R×C 크기의 크로스워드 퍼즐을 생각해 보자. 이 퍼즐은 R×C 크기의 표로 이루어지는데, 퍼즐을 다 풀면 금지된 칸을 제외하고는 각 칸에 알파벳이 하나씩 www.acmicpc.net 가로 또는 세로로 여러 개의 단어를 찾아볼 수 있는데 그 중에서 사전식으로 가장 앞에 있는 단어를 찾는 문제이다. 문제를 읽어보면 생각보다 고려할 사항이 많이 없었다.. String 자체에 비교함수가 있으니 그거 쓰면 되고 모든 단어를 찾아 정렬하거나 하는 문제가 아니였어서 가로 세로 탐색하면서 한 단어가 완성되면 현재 최솟값과 비교하면서 min을 갱신하면 된다. impo..

카테고리 없음 2023.09.13

[BOJ1188/C++] 음식 평론가

문제 요약 https://www.acmicpc.net/problem/1188 1188번: 음식 평론가 첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100) www.acmicpc.net m명의 사람에게 n개의 소세지를 공평하게 나눠주려고 할 때, 과연 몇번의 칼질을 해야하는지 생각해보는 문제이다. 오랜만에 보는 수학문제.. 입/출력 입출력은 매우 간단하다..(원래 이런문제가 더 어렵다) 접근 방식 먼저 예시로 주어진 상황을 먼저 분석했다. 2개의 소세지를 6명이서 나눠먹기 위해서는 각각 1/3조각씩..을 나눠먹는다.. 분수로 생각하니까 이해하기가 너무 어려웠다. 그래서 12(2*6)cm 소세지를 6명이서 나눠먹는다고 생각해보았다. 그러면 한사람이 2cm 씩 먹을 수 있다...

카테고리 없음 2023.09.11

[BOJ2533/Java] 사회망 서비스(SNS)

문제 요약 https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net 먼저 말씀드립니다.. 문제를 봐도 완탐형태밖에 생각이 안나는데 N이 너무 커서 어떻게 완탐을 하게 된다면 안될 거라는 생각을 했고 근데 이걸 어떻게 다르게 풀어야할지 모르겠어서 구글링을 했습니다.. 문제 요약은 다음과 같음 친구관계 트리에서 새로운 아이디어를 받아들이기 위한 최소한의 얼리어답터수를 구하려고 하는데 새로운 아이디어를 받아들이기 위해서는 한 사람의 친구가 모두 얼리어답..

알고리즘 2023.09.10