본문 바로가기

전체 글

19942 다이어트 n이 15밖에 안 돼서 비트마스크로 풀었다 2^15 = 3만 얼마 -> 시간 내로 돌 수 있다 모든 경우를 다 구했는데 틀렸다.. 알고보니 비용이 같은 경우 사전 순으로 가장 빠른 것을 출력해야 했다 비트마스크 순회 방식이 사전 순인줄 알았는데 아니었다 반례는 아래와 같다 2 0 1 3 비트마스크 순회할 경우 2 다음 0 1 3을 확인하는데 사전순으로 보면 0 1 3이 우선이다 비용이 같을 경우 사전순 비교도 추가하니 통과했다 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc.. 더보기
5875 오타 처음에 30분동안 고민하다가 안 풀려서 실패... 그러곤 마지막에 바로 아이디어가 떠올라서 해결했다 --- 먼저 오타가 최대 한 번 났기 때문에 1. '(' 와 ')'개수가 일치하는 경우 2. '(' 가 더 많은 경우 3. ')' 가 더 많은 경우 3가지 경우로 나눌 수 있다. 1. 의 경우 미리 판단해서 0을 리턴하면 된다 2.의 경우는 문자열을 뒤집으면 3.의 경우와 같아진다 그러므로 3.의 경우만 고려하자 먼저 ')' 가 더 많은 경우 결국 올바른 괄호 쌍을 만들어주려면 ')'를 '('로 변환해야 한다 그럼 어떤 ')' 를 바꿔줄지 고민하면 되는데....... 위의 그림처럼 닫을 수 없는 ')'가 생겨난 이후부터 )를 (로 변환할 수 없다 그래서 닫을 수 없는 괄호가 나타나는 시점까지 )의 개수를 .. 더보기
14641 Secret Chamber at Mount Rushmore 나: 영어가 너무 길어요.......... 스터디원: 그거 입출력만 읽어도 돼요 주어진 단어가 번역 가능한지 판단하면 된다 --- 시도1 c t i r 이렇게 변환 가능한 것들을 전부 같은 집합으로 묶었다 유니온파인드를 사용해서 구현 완료 했는데 두 번째 예제에서 막혔다 a c b a a b 위의 경우 전부 같은 집합으로 묶었는데 a를 c로 변환 가능하지 c를 a로 변환 가능한 건 아니었다 --- 시도2 결국 방향 그래프를 그리고 dfs를 사용해서 번역 가능한지 확인해보았다 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc.. 더보기
외판원순회 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() #define MAXV 987654321 using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii = tuple; i.. 더보기
24463 미로 [미완] #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() #define MAXV 987654321 using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii = tuple; bool visit.. 더보기
외접원 더보기
1241 머리 톡톡 그냥 풀면 n^2이 걸린다 생각해보니 약수로 내가 누구에게 맞을 수 있는지 구해놓고 풀면 되겠다 싶었다 약수랑 배수 헷갈려서 처음에 잘못풀었다가 고쳤다 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() #define MAXV 987654321 using namespace std; using i64 = long long int.. 더보기
2778 측량사 지윤 으아악 갑자기 수학문제 오랜만에 공식 찾아보면서 구현했다 1. 먼저 직선이 평행인지 확인한다 2. 직선간의 교점을 구한다 3. 세 직선이 한 점에서 확인한다 4. 교점으로 삼각형의 넓이를 구한다 잘 짠 것 같은데 틀렸었다... 알고보니 교점 구하는 공식에 -를 안 곱했었다. 해결~ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).en.. 더보기