목록2024/05 (4)
성장기록지
간단한 팰린드롬 문제를 무작정 구현하려다 많이 고생하여서팰린드롬을 만드는 알고리즘을 이해하고자 블로그 글을 작성합니다.1. 팰린드롬이란?거꾸로 읽어도 똑같은 문장이나 단어를 말한다.예를틀면 eye,hannah, AABCBAA 같은 단어가 있다.좌우대칭이라고 생각하면 좋다.2. 팰린드롬이 될 수 있는 단어의 조건은?-> 문자의 개수가 홀수인 문자는 하나 이하여야 한다.팰린드롬은 좌우 대칭이어야 하므로 홀수개인 문자는 하나만 중앙에 둘 수 있다.예를 들어 eye는 e는 2개, y가 1개로 홀수인 문자가 y 뿐이라 팰린드롬이지만eyde면 e는 2개, y는 1개, d도 1개로 홀수인 문자가 2개나 있어서문자의 배치를 바꿔도 팰린드롬이 될 수 없다. 3. 입력한 단어를 팰린드롬으로 바꾸자!1.개수가 홀수인 문자는..
문제https://www.acmicpc.net/problem/16926문제 해결배열을 조건에 맞게 한칸씩 반시계 방향으로 돌리는 문제이다.가로와 세로의 길이 중 작은값은 항상 짝수라는 조건이 있어서 가로 세로가 둘다 홀수일때의 예외처리를 해주지 않아도 되어서 좋았다.만약 둘 다 홀수인 아래의 그림(N=5,M=7) 보면, 17~19까지 반시계로 회전을 할 수 없게 된다. 구조 설계많은 변수와 함수가 필요하다고 생각되어 하나씩 설계해 나갔다.초기의 배열을 의미하는 nums ,회전 후 정답 배열을 의미하는 ans 를 구성하였고,가로와 세로의 길이가 각자 다를 수 있으므로,x와 y가 배열을 순회할때 가능한 시작점과 끝점을 의미하는x_min, x_max 와 y_min, y_max 변수를 만들었다.그 후 위의 ..
1. app수준의 build.gradle에 코드 추가 아래의 코드를 buildFeatures에 추가하면 된다.buildConfig = true2. gradle. properties에 코드추가아래의 코드를 추가해주면 된다.android.defaults.buildfeatures.buildconfig=true3. 위에 방법이 안될때build - clean Project를 진행한 후, file - invalidate Caches...를 진행마지막으로 build - Rebuild Project를 진행하면 웬만하면 된다.
문제https://www.acmicpc.net/problem/17413문제 해결구현문제를 누가 봐도 이해가 가게 깔끔하게 풀기위한 연습문제로 선택하였다.처음엔 쉽게 시작한답시고 고른 실버3 문제인데 생각보다 고생을 많이했다.. 좋은설계를 위해 우선 노트에 구현해야할 구조들과 예시코드를 작성하였다. 근데 글씨를 너무 못써서 따로 타이핑하여 작성하도록 하겠다.노트는 맨 아래에 있으니 참고하실 분은 참고... 구조 설계 기본 설계입력받은 문자열(string)에 인덱스 0번부터 마지막까지 반복하는 반복문을 작성한다. -> while idx반복하며 만나는 인덱스 별 문자들은 덱(deque) 에다가 append한다. 세부 설계1. '(in_tag)를 True로 전환한다.2. '>'이 보이면 덱의 길이만큼 ..