문제 풀이 현재 인덱스의 위치보다 앞에 있는 문자를 순회한다. 만약 현재 인덱스의 값과 동일하면 인덱스의 차만큼 결과값에 저장 이 연산을 배열의 길이만큼 순회한다. 코드
첫 글자의 인덱스 번호를 저장하는 변수 index 선언문자열의 길이만큼 순회하며 index안에 들어있는 값과 비교만약 첫 글자의 개수와 다른 글자들의 개수가 같아지면 결과값을 1 더하고 초기화시킨다.마지막에 만약 문자열이 분리가 안된다면 결과값 1 더한다.
이중 for문을 사용하여 좌표의 범위를 벗어나는 것들을 찾는 코드를 작성했다. 하지만 시간초과로 틀렸다.x²+y²=d²라는 공식에서 d와 x의 값을 알면 y의 최대값을 알 수 있다.따라서 for문 하나만으로 풀 수 있다.
이중 for문을 사용하여 정렬을 했다.row_begin-1부터 row_end까지 각 컬럼의 값을 더하여 행의 위치만큼 나누어준다.위의 연산한 값들을 전부 XOR연산으로 수행한다.
1개부터 수열의 길이의 개수까지 연속하는 부분의 수열을 더해서 리스트에 저장set()함수를 사용하여 리스트에 존재하는 원소 중 중복을 허용하지 않는 개수를 구한다.
방문하지 않은 상자를 모두 방문한다.상자안에 존재하는 값의 index가 아직 방문하지 않았다면 계속 방문한다.한번에 방문한 값을 ans리스트에 넣는다.ans의 길이가 1이라면 0을, 아니면 방문한 값이 제일 큰 2개의 곱을 반환해준다.
시작점부터 number의 개수만큼 딕셔너리에 값을 저장한다.want와 number의 값을 대조하여 모두 일치하면 정답으로 인정discount의 길이에서 number의 합을 뺀만큼 반복한다.딕셔너리는 다루는게 익숙치 않아 코드가 깔끔하지않다
각각의 화살과녁에 어피치보다 많이 맞춘 경우와 0인 경우를 반복해서 dfs를 수행만약 화살을 n개보다 많이 쏘았다면 종료다 쏘았거나 0점과녁까지 다다르면 카카오와 어피치의 점수를 비교카카오가 점수를 많이 받는 것이 아닌 점수차가 큰 것을 정답으로 한다.
5보다 작은 경우는 엘리베이터를 내려가고, 5보다 큰 경우는 올라가는 경우가 유리하다.5일 경우는 10의 자리가 5보다 같거나 큰 경우에만 올라가야 최단개수로 0층으로 갈 수 있다.입력값의 1의 자리를 조사한다.만약 5보다 작다면 그 값을 빼준다.5보다 큰 경우는 더해
deque에 남은 피로도값, 던전 방문 여부 배열, 던전 방문횟수를 저장한다.첫번째 던전부터 마지막 던전까지 처음부터 차례차례로 방문하면서 deque에 저장만약 던전을 모두 방문했다면 던전 방문횟수가 가장 많은 것을 answer에 저장
t의 길이에서 p의 길이를 뺀만큼의 길이를 for문 돌린다.int()를 활용하여 t의 부분문자열과 p의 문자열을 비교하여 작거나 같으면 결과값을 1 더해준다.오랜만에 초심을 잡고자 lv1을 풀었다.옛날에는 lv1도 버거웠었는데 지금은 가벼게 푸는 내 모습을 보니 뿌듯하
https://school.programmers.co.kr/learn/courses/30/lessons/150370문제의 조건을 꼼꼼하게 확인하여 하나도 빠짐없이 구현하는게 포인트약관의 종류를 딕셔너리 타입으로 저장각 privacies마다 날짜와 연도를 구하고
https://www.acmicpc.net/problem/1012모든 유기농 밭을 순회한다.배추를 심은 곳을 발견하면 카운트 한 후 인접해있는 모든 배추를 심은 곳을 평지로 바꿔준다(1을 0으로 바꿈)처음에는 bfs함수를 정의하지않고 메인함수 안에 while문
https://www.acmicpc.net/problem/6603백트래킹을 활용한다.원소는 오름차순으로 나열되어 있으므로 백트래킹 시 기존에 뽑았던 인덱스보다 이전의 것은 뽑지 않는것이 핵심
https://www.acmicpc.net/problem/14889
https://www.acmicpc.net/problem/1991저번주 1주일동안 백트래킹을 연습하면서 재귀함수에 익숙해지려고 노력했다.이번주는 트리를 하려고 하는데 첫 문제부터 쉽지 않아 다른 블로거들의 코드를 참조했다.
https://www.acmicpc.net/problem/11725트리의 입력순서가 루트노드부터 순서대로 입력되지 않는다는 점에 유의하면서 풀어야 한다.노드와 연결된 모든 노드를 저장한다.재귀함수를 이용하여 아직 방문하지 않은 노드들의 부모 노드를 저장해준다.
트리를 연습하고자 하루에 한 번씩 풀고 있는 중이고, 어느정도 감을 잡은 것 같다. 내일은 다른 알고리즘을 공부해봐야겠다.
https://www.acmicpc.net/problem/1463파이썬은 제한시간이 1.5초지만 기본 문제의 제한시간은 0.15초인 것을 보고 고려해서 코딩을 했다.bfs를 사용하여 가장 짧은 횟수로 1로 만드는 방법을 구현이때 방문한 숫자는 다시 연산하지 않
https://www.acmicpc.net/problem/1003상향식 설계큰 것부터 작은 것들 순으로 값을 채우는 설계를 말한다.재귀함수를 이용하여 큰 것부터 시작하여 문제를 풀어나간다하향식 설계작은 것들부터 시작하여 큰 것을 채워나가는 설계를 말한다.단순히
https://www.acmicpc.net/problem/11726
https://www.acmicpc.net/problem/2156매 술잔을 선택할 때 3가지 경우의 수를 고려하여 가장 높은 값을 저장한다.첫 번째 경우는 현재선택한 잔을 마시지 않는 것이다.두 번째 경우는 현재와 다음 잔을 연속으로 마시는 것이다.세 번째 경
https://www.acmicpc.net/problem/20207366크기를 갖는 배열을 생성한다.각 인덱스 값 = 날짜, 배열값 = 일정의 개수로 생각한다.입력받은 날짜를 배열의 인덱스에 넣어 안에 존재하는 값을 1씩 증가시킨다.마지막에 연속된 값을 계산한
https://www.acmicpc.net/problem/16987
https://school.programmers.co.kr/learn/courses/30/lessons/176962
https://school.programmers.co.kr/learn/courses/30/lessons/159993bfs를 이용하기 위해 deque를 선언하여 풀었음
https://school.programmers.co.kr/learn/courses/30/lessons/169199bfs를 이용하여 풀어야하므로 deque선언만약 답을 구할 수 없는 경우 -1을 출력해야하므로 방문변수 선언미끄러지는 경우의 수는 while을 이