AtCoder Beginner Contest 225 A부터 D까지 업솔빙 포스팅 썸네일 이미지

알고리즘/atcoder

AtCoder Beginner Contest 225 A부터 D까지 업솔빙

AtCoder Beginner Contest 225 A부터 D까지 업솔빙 D번을 내가 왜 못풀었을까? 계속 강조하지만 문제를 너무 어렵게 생각하지 않는게 좋을 것 같다. 때로는 문제에서 하라는 대로 그대로 구현하는 능력도 중요하다는 것을 잊지말길. 하라는대로만 하고 그 다음 시간초과가 나면 새로운 알고리즘을 생각해보자. 문제 옆에 붙어있는 난이도는 Atcoder Problems 에서 추정한 것으로 작성했다는 것을 미리 알린다. A - Distinct Strings (*12) 접기/펼치기 문제 설명 알파벳 소문자 3글자로만 이루어진 문자열 $S$가 주어진다. $S$를 나열할 때 얻을 수 있는 서로다른 문자열의 개수는 몇개일까? 문제 해설 모든 문자가 같으면 1, 모든 문자가 다르면 6, 그렇지 않으면 3을..

2022.06.15 게시됨

Codeforces Round #766 A부터 C까지 업솔빙 포스팅 썸네일 이미지

알고리즘/codeforces

Codeforces Round #766 A부터 C까지 업솔빙

Codeforces Round #766 A부터 C까지 업솔빙 B번 문제가 게임이론? 이걸 어떻게 알아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 근데 막상 풀이 보면 납득이 가는 이유라서 정말 어이없는 문제. 이해가 정말 잘되서 놀랐다. C번 문제는 정수론 관련된 문제인데 알고리즘을 위한 정수론이 참 애매한것 같다. 정수론이 흔들리면 알고리즘에서 약점이 되는데, 그렇다고 막상 정수론을 공부하자고 하니 투머치인것 같고... 그냥 계속 문제 풀자. A. Not Shading (*800) 접기/펼치기 문제 설명 $n \times m$ 크기의 격자판이 있다. 몇개 격자에는 검은색으로 칠해져있고, 나머지는 흰색으로 칠해져 있다. 한번의 연산으로 검은 격자중 하나를 선택해서 다음 연산을 한번 실행한다. 해당 격자를 포함한 모든 행을 검은색..

2022.06.11 게시됨

AtCoder Beginner Contest 224 A부터 D까지 업솔빙 포스팅 썸네일 이미지

알고리즘/atcoder

AtCoder Beginner Contest 224 A부터 D까지 업솔빙

AtCoder Beginner Contest 224 A부터 D까지 업솔빙 이번 대회에서 D번 문제가 내 잊어버린 BFS감을 다시 찾는데 도움이 된 것 같다. 이전에는 BFS문제가 나왔을 때, 이해하는데만 오랜 시간이 걸렸는데, 이제는 이해할 때 생각보다 적은 시간이 걸려서 좋았다. 그리고 D번 문제가 생각보다 잘 만든 문제라서 공부하면서 기분이 좋았다. C번 문제같은 경우는 일단 완전탐색을 항상 생각하는 것이 중요할 것 같다. 심지어 정렬까지도. 문제 옆에 붙어있는 난이도는 Atcoder Problems 에서 추정한 것으로 작성했다는 것을 미리 알린다. A - Tires (*6) 접기/펼치기 문제 설명 문자열 "er"과 "ist"로 끝나는 문자열 $S$가 주어진다. 만약 $S$가 "er"로 끝나면 "er..

2022.06.02 게시됨

Codeforces Round #765 A부터 B까지 업솔빙 포스팅 썸네일 이미지

알고리즘/codeforces

Codeforces Round #765 A부터 B까지 업솔빙

Codeforces Round #765 A부터 B까지 업솔빙 C번 문제가 *1700문제라서 심지어 dp라 깔끔하게 포기하고 오는 길이다. 나는 *1400까지 문제만 깔끔하게 푸는 실력이 되고 싶다. A. Ancient Civilization (*800) 접기/펼치기 문제 설명 이진수의 거리 는 다음과 같이 정의한다. 두 이진수끼리 같은 자리를 비교할 때, 서로 다른 숫자의 개수가 바로 그 거리이다. $n$개의 이진수가 주어졌을 때, 각 이진수와 y사이 거리 합을 최소화 하는 이진수 $y$를 찾아라. 문제 해설 문제를 보면서 처음에는 단순하게 or연산을 사용하면 되나 싶었는데, 자세히 보니까 아니였다. $n$개의 이진수에 대해서 맨 뒤자리 비트부터 보는데, 각 자리의 비트에서 1의 개수와 0의 개수를 세고..

2022.06.02 게시됨

AtCoder Beginner Contest 223 A부터 D까지 업솔빙 포스팅 썸네일 이미지

알고리즘/atcoder

AtCoder Beginner Contest 223 A부터 D까지 업솔빙

AtCoder Beginner Contest 223 A부터 D까지 업솔빙 D번 문제까지 풀어서 1000점 가량 퍼포먼스가 나와서 가상 레이팅 점수가 올랐다. 정말 뿌듯했다. DP문제를 시간내에 해결했다는 점이 정말 고무적인 성과라고 생각한다. 이제 ATcoder 1400점 갈수 있을까? 문제 옆에 붙어있는 난이도는 Atcoder Problems 에서 추정한 것으로 작성했다는 것을 미리 알린다. A - Exact Price (*6) 접기/펼치기 문제 설명 천호의 지갑에는 1개 이상의 $100$원 동전뿐이 있고, 나머지 종류의 동전은 없다. 이 지갑을 사용해서 정확히 $X$원을 지불할 수 있을까? 문제 해설 나머지 연산을 사용합시다. 정답 코드 #include using namespace std; int m..

2022.05.28 게시됨

Codeforces Round #764 A부터 D까지 업솔빙 포스팅 썸네일 이미지

알고리즘/codeforces

Codeforces Round #764 A부터 D까지 업솔빙

Codeforces Round #764 A부터 D까지 업솔빙 C번 문제까지는 어찌 문제를 풀었는데, 퍼포먼스는 1100정도 나온 것 같다. d번 문제는 이분탐색이라는 단서가 너무 많이 주어져 있었는데, 활용능력하고 결정함수를 만드는 능력이 떨어져서 못푼것 같다. A. Plus One on the Subset (*800) 접기/펼치기 문제 설명 배열 $a[1, ..., n]$이 주어진다. 그리고 다음 연산을 몇번이고 수행해서 배열의 모든 원소를 같게 만들고 싶다. 한 연산에서, 배열에 있는 index를 선택하고 해당 index에 속한 원소값을 1 올린다. 배열에 있는 모든 원소를 모두 같게 만들기 위해서 필요한 최소 연산횟수는 무엇인가? 문제 해설 index를 제한없이 선택할 수 있기 때문에 이 문제가 쉽..

2022.05.23 게시됨