하얀 칸 위에 말이 존재해야하는데, (0,0)이 하얀 칸 이므로 (0,1), (1,0)은 검정 칸이다. 그래서 차례로 나타내면 하얀 칸은 인덱스 값을 더하면 짝수가 나와야 합니다. 이를 조건에 넣어주고 또한 그 칸 값이 F여야 하므로 둘을 and로 묶어 조건으로 표현합
완전제곱수가 M과 N사이에 있으면, 배열 num에 저장한다. 합도 구해야하므로 num_add에 완전제곱수를 더한다. num_add가 0이라는 의미는 한번도 값이 저장된 적이 없다 즉, 완전제곱수가 없다라는 의미이므로 조건으로 사용합니다.
우선 단어를 입력 받을 때, 리스트로 입력을 받아 비교하기 편하게 만듭니다. 길이가 홀수인 경우, 가운데 있는 문자는 비교할 문자가 없으므로 비교하지 않아도 됩니다. 길이의 절반+1을 range값으로 설정한 후, 문자를 비교하면 됩니다.이때, 인덱스 값이 0인 문자와
우선, 규칙을 찾았다. 홀수이면 1번째 줄에 이 추가되고 짝수이면 2번째 줄에 이 추가된다.
조건에도 있듯이 첫 번째 글자만 대문자이므로 아스키코드를 이용하여 조건을 설정합니다. 조건에 맞으면 리스트에 추가하여 출력합니다.
말 그대로 8진수로 입력 받아, 10진수로 변환 후 2진수로 출력했다. 근데 8진수로 입력 받는 방법이 어려워서 문자열로 입력 받은 뒤 8진수로 변환했다.
배열을 통해 값을 저장하고 인덱스 값을 통해 결과 값을 도출했습니다. 인덱스 값 찾기: 이름.index('원하는 값')
https://www.acmicpc.net/problem/10820대문자, 소문자, 숫자, 공백은 isupper(), is lower(), isdigit(), isspace()으로 구분했다. 근데, 입력을 어떻게 받아야 하는지를 몰라 찾아보니 read.std.
https://www.acmicpc.net/problem/1075처음에 문제 푼 방법은 런타임에러(nameerror)가 떴다. 복잡한게 푼 거 같아서 다른 분이 하신 코드를 참고했다. (https://pacific-ocean.tistory.com/10
https://www.acmicpc.net/problem/7567i번째 문자와 i+1번째 문자가 같은 경우 높이가 5cm 증가, i번째 문자와 i+1번째 문자가 다른 경우 높이가 10cm 증가함을 for문과 if문을 이용하여 코드를 작성할 수 있다. 또한 그릇
https://www.acmicpc.net/problem/3040문제 자체는 안어려웠는데, 구현하는 데 있어 애를 먹었다. 원래는 if문 안에서 원소 값을 제거하려고 했는데, 에러가 떠서 왜 그런가 고민해봤다. 답은 break문이 단 하나의 반복문만 빠져나오며
https://www.acmicpc.net/problem/1159값을 입력받을 때마다 알파벳에 해당하는 원소 값에 1을 더한다. 그 이후 값이 5보다 크다면, 결과 리스트인 result에 추가한다. result길이가 0이라면 값이 없다는 의미이므로 PREDAJ
백준 25305번 문제 https://www.acmicpc.net/problem/25305 나의 풀이 원래는 정렬을 사용하여 풀려고 했으나, 파이썬은 sort로 정렬이 가능합니다. score[b-1]인 이유는 인덱스는 0부터 시작하기 때문입니다. 코드 새로 알게
https://www.acmicpc.net/problem/2745계속 valueError가 떠서 뭐가 잘못된건가 했는데, alpha를 잘못적어서 그렇다...^^; 우선 일,십,백,천 의 순으로 값을 result에 더해야하므로 역순으로 반복문을 돌렸다. 그리고
https://www.acmicpc.net/problem/2864 처음엔 모든 경우의 수를 찾아야 하나 했지만, 최솟값과 최댓값만 구하면 된다. 그러므로 5,6 중에서 모두 5인 경우가 최솟값이고 모두 6인 경우가 최댓값이므로 한번에 구할 수 있다. 문자열 바
https://www.acmicpc.net/problem/133002차원 배열을 만들어, 학년과 성별을 인덱스 값으로 설정합니다. 이후, 이중반복문을 통해 모든 값을 출력할 수 있게끔 만듭니다. 만약 나머지가 없는 경우엔 몫의 값만 result(총 방의 개수)
https://www.acmicpc.net/problem/2605처음 코드는 접근을 뒤에서부터 인덱스 값을 계산해서 result에 원소 값을 저장하는 방식인데, 계속 틀렸다고해서 앞에서부터 인덱스 값을 계산해서 result에 원소 값을 저장했다. 리스트의 원소
https://www.acmicpc.net/problem/5355기호에 맞는 연산을 if문으로 구현합니다.float를 이용하여 실수로 변환합니다. f-string을 이용하여 소수점 둘째 자리까지 출력합니다. 소수점 출력: f-string 이용소수점 자릿수 지정
https://www.acmicpc.net/problem/5598아스키코드로 변환하여 문제를 풀어주면 됩니다. 이때 ABC/ABC뺀 나머지 알파벳으로 구분하여 문제를 풀어주면됩니다. ABC가 아닌 알파벳의 경우, 규칙에 의해 아스키 코드값에서 3을 빼주면 됩니
https://www.acmicpc.net/problem/1453seat.count(i) == 0 이라는 의미는 seat에 같은 값이 없다는 의미입니다. 그러므로 i를 seat에 추가합니다. 만약, 같은값이 존재한다면 변수 refuse(거절당한 사람의 수)에
https://www.acmicpc.net/problem/15829아스키 코드에서 96를 빼면 a=1, b=2 ,... ,z=26 (x)을 가질 수 있습니다. x에 n제곱값을 곱해준 후 result에 더해줍니다. result에 M(1234567891)을 나눠준
https://www.acmicpc.net/problem/2587평균의 경우, 모든 값을 더한 뒤 5로 나눈 몫으로 구했습니다.중간값의 경우, sort()를 통해 값을 정렬하고 3번째 값을 출력하였습니다.
https://www.acmicpc.net/problem/17608값을 하나씩 arr에 저장합니다. 이후에, reversed를 통해 오른쪽부터 왼쪽이 아닌 오른쪽부터 반복문을 돌립니다. 이전의 막대 최대 높이보다 현재 막대 높이가 높은 경우에는 막대가 보이므로
https://www.acmicpc.net/problem/1297math 라이브러리를 사용하여 피타고라스 정리를 이용하여 문제를 풀어주면 됩니다. 소수점이 나올 시를 대비하여 floor()함수를 통해 소수점 값을 제거해줍니다.
https://www.acmicpc.net/problem/2592반복문에서 값을 다 더한 뒤, 개수만큼 나누면 평균값을 구할 수있다.mode는 최빈값, cnt는 최빈값의 개수로 정의합니다. 반복문을 사용하여 모든 원소를 다 탐색하고 만약 temp(원소개수)가
https://www.acmicpc.net/problem/2789cam.count(i)!=0을 이용하여 주어진 문자열에 CAMBRIDGE가 있다면 replace()를 통해 값을 지워줍니다.
https://www.acmicpc.net/problem/2711원래는 replace()를 사용하여 값을 삭제하려고 했으나 복잡해져 새로운 리스트를 생성하여 거기에 특정 위치의 문자를 제외하고 추가하였습니다. 이때 n을 인덱스 값으로 치환하기 위해 1을 빼줍니
https://www.acmicpc.net/problem/15969sort()를 통해 오름차순으로 정렬을 한 뒤, (맨 마지막 값) - (맨 처음 값) 을 빼주면 됩니다.
https://www.acmicpc.net/problem/1080420장의 카드 값을 list로 구현합니다. cnt = (구간 끝 위치) - (구간 시작 위치)cardx <-> cardy의 값이 변경되므로 한번에 두개의 값이 바뀝니다. 즉, 구간에 n개의
백준 1919번 문제 https://www.acmicpc.net/problem/1919 코드 풀이 중복되는 값을 리스트에서 제거해준 후, 길이를 더하면 됩니다.
https://www.acmicpc.net/problem/1225시간초과로 실패한 풀이검색해보니 곱하고 더하는것이 아니라 더하고 곱하면 된다고 해서 코드를 변경했다. 결국 같은 값이기 때문에..!!..
https://www.acmicpc.net/problem/5576값을 입력받은후, 내림차순으로 정렬합니다. (sort(reverse = True))그리고 각각의 결과 값에 인덱스 값이 0,1,2인 값들만 더해줍니다.
https://www.acmicpc.net/problem/1568현재 나무에 앉아있는 새의 수가 지금 불러야 하는 수 보다 작을 때는, 1부터 게임을 다시 시작해야하므로 cnt 값을 1로 바꿔준 후, 남아있는 새의 수에서 cnt값을 뺍니다. result 값은
https://www.acmicpc.net/problem/2355가장 간단한 방법으로 풀었을 때는 시간초과가 떴습니다. 이후, result에 값을 저장하여 sum함수로 풀었을 때는 메모리초과가 떴습니다. 그래서 수학공식을 이용하여, 다시 풀었습니다.
https://www.acmicpc.net/problem/10821split(',')을 이용하여 콤마(,)마다 값을 잘라서 s에 저장했습니다. for문을 이용해 cnt에 리스트의 값의 개수를 추가했습니다.
https://www.acmicpc.net/problem/1408입력 받을 때, :를 기준으로 값을 나눠 리스트에 저장합니다. 시간을 초로 저장합니다 그리고 0을 포함해서 출력해야 하므로 zfill()를 이용합니다.
https://www.acmicpc.net/problem/18406길이를 2로 나눈 후, 이 값을 기준으로 숫자들을 더해줍니다. 더한 값이 같다면 LUCKY를 출력 다르다면 READY를 출력합니다.
https://www.acmicpc.net/problem/5218거리 값을 쉽게 저장하기 위해서 아스키코드를 이용합니다. 문제에 나와있듯이, temp1이 temp2보다 작거나 같으면 temp2에서 temp1를 뺍니다. 반대 상황이라면 26을 더해준 뒤, tem
https://www.acmicpc.net/problem/2511분명 더 간단한 방법이 있을테지만...ai와 bi의 값을 비교하면서 a의 값이 크다면 sum1에 3을 더하고 score에 A를 저장해줍니다. b의 값이 크다면 sum2에 3을 더해주고 score에
https://www.acmicpc.net/problem/2869$$ax + bx - b \\geq height \\=(a+b)x \\geq height - b\\ = x \\geq \\frac {(height - b)} {(a+b)}$$이라는 식으로 계산할
https://www.acmicpc.net/problem/1924x월 y일 전까지 모든 일수를 다 더해줍니다. cnt = (x-1 월까지의 모든 일) + y 이므로 for문을 이용하여 x-1까지의 모든 일을 구해줍니다. cnt를 7로 나눈 나머지가 요일에 해당
https://www.acmicpc.net/problem/1157입력 받을 때 모두 대문자로 변경해줍니다. 입력받은 단어에 중복된 알파벳을 제거한 리스트를 만듭니다.for문을 사용해서 중복되지 않은 알파벳의 개수를 세고 이를 cnt_list에 더해줍니다. 또한
https://www.acmicpc.net/problem/2979for문의 범위 = (가장 빨리 도착한 차의 도착 시간, 가장 늦게 출발하는 차의 떠나는 시간)i시간일때, 차가 주차장에 있는지 if문을 통해 확인합니다. 만약, 그 안에 차가 있었다면 cnt값
https://www.acmicpc.net/problem/2702값을 구했다면, break를 통해 루프를 탈출합니다.
https://www.acmicpc.net/problem/1371아스키코드를 통해 alpha 원소의 값에 1씩 더해줍니다.이후에 alpha의 값과 최대값이 같다면 숫자+97를 알파벳으로 변환하여 답을 구했습니다.
https://www.acmicpc.net/problem/9076최대값과 최소값을 referee에서 지워줍니다.다시 리스트내에서 최대값과 최소값의 차이를 구해 4이상이면 KIN을 출력, 아니라면 총합을 출력합니다.
https://www.acmicpc.net/problem/10539수열 A에서 수열 B 구하는 방법을 반대로 해서 구하면 됩니다...^^
https://www.acmicpc.net/problem/16916find()를 이용합니다. 값이 없다면 출력 값이 -1 이므로 이를 이용하여 if-else문을 만듭니다.
https://www.acmicpc.net/problem/5618처음엔 시간초과가 떠서 방법을 바꿨다.gcd를 이용해서 최대공약수를 구한 후, 최대공약수의 약수를 출력하도록 했다. 루프의 범위를 min_num//2+1로 한 이유는 min_num이면 시간초과가
https://www.acmicpc.net/problem/12522진수의 문자열(a)을 숫자형으로 변환하기 : int(a,2) 10진수를 2진수로 변환하기: bin(a)
https://www.acmicpc.net/problem/11653소인수분해 값만 알면 되므로 temp로 n이 나눠진다면 n=n//temp로 바꿔주고 아니라면 temp에 1을 더해줍니다.
https://www.acmicpc.net/problem/2309이중 for문을 이용하여 원하는 값을 찾은 뒤, list에서 삭제해줍니다. combinations을 이용해 무작위로 7개를 뽑은 후, 합이 100인지를 확인합니다. exit(): 프로그램 종료
https://www.acmicpc.net/problem/1934math 라이브러리를 이용해도 되지만, 함수를 만들어보았다유클리드 호제법을 이용하여 문제를 풀었다. 유클리드 호제법
https://www.acmicpc.net/problem/2751
https://www.acmicpc.net/problem/1181단어 입력을 받고 중복 제거를 위해 not in 을 사용했습니다. 이후 sort()를 통해 정렬했습니다. 리스트 검색 vs 문자열 검색리스트: 검색할 대상 in 리스트문자열: 문자열.find(검색
https://www.acmicpc.net/problem/11050풀이 1는 math라이브러리에서 팩토리얼을 사용했습니다. 풀이 2는 for문을 이용하여 값을 구했습니다. 분자 값: (n-k)부터 n 까지의 곱분모 값: 1부터 k까지의 곱
https://www.acmicpc.net/problem/1037가장 큰 값과 가장 작은 값을 곱하면 된다.
https://www.acmicpc.net/problem/2163nm개의 조각으로 이루어져 있으므로 초콜릿을 n개로 자르기 위해선 총 n-1번을 쪼개야합니다. 이후 하나의 조각에서 m개의 조각으로 만들어야 하므로 m-1번을 쪼개야합니다. n개를 m-1번 쪼개야
https://www.acmicpc.net/problem/12590을 입력받으면 종료해야하므로 exit()를 사용했다. 값을 문자열로 받았으므로 정수로 변환 후 비교해준다. 만약 다르다면 no를 출력하고 break아니라면 cnt값을 통해 팰린드롬을 확인하고 y
백준 5032번 문제 https://www.acmicpc.net/problem/5032 코드 풀이 처음엔 e+f를 c로 나눠서 푸는거 아닌가 했는데 너무 간단하기도 하고 답도 틀려서 엥,,뭐지,, 했다. 근데 빈병으로 새병을 바꾸고 또 다시 빈병이 발생하는 것까지
https://www.acmicpc.net/problem/10829
https://www.acmicpc.net/problem/1592처음에 1번째는 공을 가지고 있으므로 1이라는 값을 가지고 있습니다. 최대값이 m 보다 같아지면 루프를 탈출해야하므로 while문을 사용했습니다. 공을 받은 횟수가 짝수냐 홀수냐에 따라 방향이 달
https://www.acmicpc.net/problem/1292for문을 통해 result에 1 2 2 3 3 3 4 4 4 4 식으로 값을 저장한뒤, 범위에 맞게 값을 더해서 출력했다.이때 m-1인 이유는 인덱스는 0부터 번째는 1부터 시작하기 때문이다.
https://www.acmicpc.net/problem/2581
https://www.acmicpc.net/problem/1032맨처음에 입력받은 파일이름을 result에 저장합니다. 그 다음부터는 temp에 저장한 뒤, result와 temp를 비교합니다. 값이 다르다면 result의 값을 ?로 변경해줍니다. (값이 같다
https://www.acmicpc.net/problem/9093입력을 받을때마다 단어 단위로 li 리스트에 저장합니다. 반대로 출력하기 위해 reversed를 사용합니다.
백준 1668번 https://www.acmicpc.net/problem/1668 코드 풀이 왼쪽에서 보이는 트로피의 경우, 입력받은 순서대로 값을 구하면 됩니다. 오른쪽에서 보이는 트로피의 경우, 왼쪽과 반대로 구하면 되므로 맨 마지막에 입력받은 순서대로 구하
https://www.acmicpc.net/problem/25501
https://www.acmicpc.net/problem/28395로 나눠질때까지 3을 뺍니다.
https://www.acmicpc.net/problem/11655아스키코드로 분류를 해서 소문자/대문자, +13/-13의 경우를 나누어서 구현했다.
https://www.acmicpc.net/problem/3062우선 원래 숫자를 입력 받은 뒤에 reversed를 통해 뒤집은 수를 만듭니다. 두 숫자 모두 문자열이므로 숫자형으로 바꾼 뒤 더해서 원하는 값(result)를 구합니다. 이후 i인덱스 값과 -1
https://www.acmicpc.net/problem/2804먼저 겹치는 값과 각각의 단어에서 겹치는 값의 인덱스를 구해줍니다. 가장 처음 겹치는 알파벳만 알면 되므로 (이후의 겹치는 값은 상관없음) break를 사용합니다. 이후 이중 for문을 이용하여
https://www.acmicpc.net/problem/4796값을 입력 받은 뒤, p로 나눈후 l을 곱해줍니다. => 한번에 캠핑 l일 가능 x 횟수 (몫)이후 나머지 값의 경우, l과 v%p값 중 작은 값을 cnt에 더해줍니다.
https://www.acmicpc.net/problem/10773스택을 이용해서 풀면됩니다. 입력받은 값이 0인 경우, result에 저장해준 마지막 값 (top) 값을 빼주면 됩니다. (pop)0이 아니면, result에 더해줍니다. (push)
https://www.acmicpc.net/problem/11328결국 a와 b의 알파벳이 같은지를 묻는 것이므로 각각 정렬을 한 뒤, 값이 다른 경우와 같은 경우를 나누어서 flag값을 설정하면 됩니다.
https://www.acmicpc.net/problem/23037문자열로 입력을 받은 뒤, int()를 통해 숫자로 바꾼후 math.pow()를 통해 각각의 숫자를 5승을 해서 더해주면 됩니다.
https://www.acmicpc.net/problem/1373
https://www.acmicpc.net/problem/2693입력 받은 뒤, 오름차순으로 정렬을 합니다. 이후 3번째로 큰 숫자 = 인덱스가 -3인 숫자(뒤는 -1부터 시작) 이므로 배열-3출력하면 됩니다.
https://www.acmicpc.net/problem/1920이분탐색으로 풀지는 않았고, set을 이용하여 중복을 없앴습니다. 만약 num2의 원소가 num1에 존재한다면 1을 출력, 없다면 0을 출력합니다.
https://www.acmicpc.net/problem/2164deque를 사용하여 queue로 문제를 풀었습니다. 순서대로 맨 위에 있는 숫자를 삭제하고 이후 맨 위 숫자를 맨 뒤로 옮기는 것을 반복합니다.
https://www.acmicpc.net/problem/10845
https://www.acmicpc.net/problem/18258시간초과 코드와 정상 출력 코드와의 차이는 바로 deque를 사용했나/하지않았나의 차이. \- deque양방향에서 원소를 추가하거나 삭제가 가능합니다. 즉, 스택 및 큐를 구현할 수 있습니다.
https://www.acmicpc.net/problem/10828
https://www.acmicpc.net/problem/9012(을 입력 받으면 스택에 추가해주고 )를 입력받으면 스택에서 값을 뺍니다. 이때, 스택에 값이 없다면 No를 출력하고 break문을 통해 루프를 빠져나옵니다. 마지막에 스택에 값이 존재한다면 올
https://www.acmicpc.net/problem/2851입력받을때마다 num에 추가해준다. 이후 score에 입력받은 순서대로 값을 더해준다. 그리고 score 값이 100이 넘어거나 같으면 break문을 통해 for루프를 탈출한다. 두 값을 비교해야
https://www.acmicpc.net/problem/1350파일의 크기를 클러스터의 크기로 나눠줍니다. 만약 나머지가 존재한다면 클러스터가 하나 더 필요하므로 1을 더해줍니다.클러스터의 개수(cnt)를 구한 뒤, 클러스터의 크기와 곱해주면 디스크의 크기를
https://www.acmicpc.net/problem/11866deque로 que를 구현합니다. for문을 통해 k-1번만큼 인덱스가 0인 값을 제거한 뒤, 마지막에 추가해줍니다.k번째가 되면 인덱스가 0인 값을 제거합니다. 이것을 que 안에 값이 없을
https://www.acmicpc.net/problem/11557입력을 2차원 배열로 받은 뒤, lambda 함수를 통해 술 소비량으로 오름차순 정렬을 합니다. 맨 마지막 원소의 첫번째 값을 출력하면 됩니다.
https://www.acmicpc.net/problem/9506\-1 입력을 받으면 루프문 종료. 공식에 의해 몫 \* 나눈 수 = 원래 수 가 되므로 몫과 나눈 수 모두 원래 수의 약수가 됩니다. 이를 이용하여 약수를 구합니다. 몫과 나눈 수가 같은 경우엔
https://www.acmicpc.net/problem/2846길이가 num인 리스트를 만듭니다.그래서 오르막길 조건을 만족할 때 (뒤의 수 - 앞의 수 > 0) 값을 리스트에 추가합니다. 만약 조건을 만족하지 않으면 인덱스 값을 1을 추가해줍니다. (연달아
https://www.acmicpc.net/problem/1929에라토스테네스의 체 (소수 구하는 방법)n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사하는 것을 의미함.
https://www.acmicpc.net/problem/2153아스키코드를 이용해 문자에서 숫자로 바꿔준 후, 소문자와 대문자를 나눠서 값을 구합니다.이후 소수인지 아닌지를 판단하여 메세지를 출력합니다.
https://www.acmicpc.net/problem/10824a,b 더하고 c,d를 더할때는 문자열의 특성을 이용해 문자를 붙여주며, 이후 정수로 변환하여 더해줍니다.
deque로 card를 구현 한 후, 맨 위의 카드 버리기 (1) -> 맨 위의 카드 뒤에 추가하기 (2) -> 맨 위의 카드 버리기 (3) 을 반복하면 됩니다.
https://www.acmicpc.net/problem/2810LL이 몇 개가 있는지 세어줍니다. 최대 몇명이 컵 홀더를 사용할 수 있는지 출력해야 하므로 만약, 컵홀더가 사람보다 많으면 사람 수를 출력 아니라면 컵홀더 수를 출력해야합니다. 커플석이 0이거나
https://www.acmicpc.net/problem/1316같은 알파벳이 연속되지 않은 경우 (이후에 있는 경우) cnt값을 1씩 지워줍니다.
https://www.acmicpc.net/problem/2417이분탐색을 이용하여 풀이해주면 됩니다.
https://www.acmicpc.net/problem/6996업로드중..입력을 문자열로 받고, list로 변환 후 알파벳순으로 정렬을 한 뒤, 같은지 다른지를 판별합니다.
https://www.acmicpc.net/problem/1475입력을 받은 뒤, 9를 6으로 바꿔줍니다. 배열을 하나 생성하여 i(숫자)와 같은 인덱스를 가지고 있는 값에 1씩 더해줍니다. 6의 경우, 다른 숫자와 달리 한 세트에서 2개를 사용할 수 있으므로
https://www.acmicpc.net/problem/14659최대 봉우리(max_bow)보다 현재 봉우리가 크다면, 최대 봉우리 값을 현재 봉우리 값으로 바꾸고 적 수(cnt) 값을 0으로 바꾼다. 만약 작거나 같다면, 적 수를 1로 올려준다. 이후 현재
https://www.acmicpc.net/problem/2512이분탐색을 이용하여 문제풀이를 해줍니다.
https://www.acmicpc.net/problem/1526반복문을 돌려, 숫자를 문자열로 변경해줍니다. 이 문자열에 4또는 7이 있는지 확인을 한후, 존재한다면 cnt값에 1을 더해줍니다. cnt값이 문자열의 길이와 같다면 출력해줍니다.
https://www.acmicpc.net/problem/2805이분탐색을 이용하여 해결합니다.
https://www.acmicpc.net/problem/14467풀이 1 입력을 다 받고나서 이중반복문을 통해 소의 번호가 같은지 확인합니다. 만약 소의 위치가 다르다면 cnt값을 더해줍니다. 풀이 2풀이 1이 복잡해보여서 찾아본 풀이. 만약 소의 번호가 이
https://www.acmicpc.net/problem/11170입력을 받고 나서 문자열로 바꾼 후,count를 통해 0의 개수를 세어줍니다.
https://www.acmicpc.net/problem/5800내림차순으로 리스트를 정렬합니다. 이후 반복문을 통해 현재 값과 이후 값을 빼줘서 가장 차이가 많이 나는 값을 구해줍니다.
https://www.acmicpc.net/problem/1343풀이 1의 경우 실패뜨는 코드...어렵게 생각했나보다...힝구리..풀이2의 경우 replace를 통해 XXXX -> AAAA , XX -> BB로 변경해준다. 만약 word내에 X가 존재한다면 덮
https://www.acmicpc.net/problem/2108산술평균, 중앙값, 범위는 구하기 쉬웠습니다. counter.most_common(2)을 이용하여 최빈값 2개를 반환합니다.만약, 개수가 같다면 뒤의 값을 출력하고 (두번째로 작은 값을 출력하라고
https://www.acmicpc.net/problem/1764set으로 입력받아 중복값을 제거합니다. &(교집합)을 통해 see에서와 hear에서 중복되는 값을 찾아 출력합니다. set집합 자료형
https://www.acmicpc.net/problem/12605스페이스바를 기준으로 단어들을 나누어 result에 저장 후, 맨 뒷값부터 출력합니다.
https://www.acmicpc.net/problem/10798먼저, 최대 문자열 길이를 구해줍니다. 만약, 문자열의 길이가 최대 문자길이보다 짧다면 ( 최대 문자열 길이 - 문자열 길이 ) 만큼 .를 추가해줍니다. 이중 반복문을 이용하여 출력합니다. 세로
https://www.acmicpc.net/problem/1158deque를 이용합니다. k-1번만큼 for문을 돌려 맨 아래의 값을 지워준 후, 다시 맨 위에 추가해줍니다. 이후 맨 아래의 값을 지우고 result에 값을 추가해줍니다.
백준 11651번 문제 코드
https://www.acmicpc.net/problem/1010math.comb()를 이용해 조합으로 문제를 풀었습니다.
https://www.acmicpc.net/problem/11399오름차순으로 정렬한 뒤, i+1 전까지의 값을 더하여 reslt에 저장합니다.이후 result의 값들으 모두 더해주어 출력합니다.
https://www.acmicpc.net/problem/2606DFS를 이용하여 풀었습니다.마지막에 1을 빼준 이유는 1번 컴퓨터의 방문 수를 빼기 위함입니다.
https://www.acmicpc.net/problem/1260
https://www.acmicpc.net/problem/14696숫자에 맞는 인덱스에 값을 1씩 올려주고큰 숫자가 많은 사람이 이기기 때문에 반복문을 뒤에서부터 돌려줍니다.
https://www.acmicpc.net/problem/14425처음엔 딕셔너리로 풀었다가 배열로 바꾸어서 문제를 풀었다.
https://www.acmicpc.net/problem/1269각각의 집합에서 교집합에 해당하는 원소들을 삭제한 후 원소의 개수를 세면 됩니다. set을 이용하여 중복을 제거해줍니다. 전체 길이에서 교집합을 빼주는데 집합이 두개이므로 2를 곱한 후 빼줍니다.
https://www.acmicpc.net/problem/4949만약 입력받은 문자가 \[ 나 ( 이면 deque로 만든 배열에 넣어줍니다. 입력받은 문자가 ]이고 deque의 마지막 문자가 \[이면 마지막 문자인 \[을 빼줍니다. )도 마찬가지로 deque
https://www.acmicpc.net/problem/1302
https://www.acmicpc.net/problem/17219딕셔너리를 이용해 문제를 풀었다.
https://www.acmicpc.net/problem/2941크로아티아 알파벳을 리스트로 만듭니다.입력받은 단어 내 크로아티아 알파벳이 있으면 알파벳을 . 로 바꿔준 후 모두 다 바꾼 뒤에 '.' 를 ''로 바꿔줍니다.단어의 길이와 이전에 바꾼 알파벳의 개
https://www.acmicpc.net/problem/1065(n+1번째 값) - (n번째 값)이 일정해야 하므로 temp라는 set에 뺀 값들을 추가해줬다. set으로 만든 이유는 한수라면 값이 일정하므로 set이 길이가 1이 되기 때문이다. 그래서 se
https://www.acmicpc.net/problem/11723말 그대로 풀어서 넣었다. 중복된 값이 있으면 안되므로 set으로 구현했다.all, empty의 경우 값이 모두 존재하거나 / 공집합이 되는 명령어이므로 all과 empty에 해당하는 집합을 만
https://www.acmicpc.net/problem/1676뒤에서부터 0의 개수를 세주었으며, 0이 아닌 수가 나오면 반복문을 종료하도록 break문을 이용했다.
https://www.acmicpc.net/problem/1748시간초과 코드: for 문의 범위 때문이 아닌가 싶었다. 결국 num만큼 for문을 돌려야하는 것이므로 숫자가 클 수록 더 많은 시간이 소요되기 때문이라고 예상한다. 답안 코드: 숫자의 길이가 가
https://www.acmicpc.net/problem/11656for문을 반대로 돌려서 temp에 글자를 더해주고 리스트에 추가해준다. 이 때, temp는 누적값이므로 초기화 하지 않는다. 정렬 함수를 이용해 정렬한 뒤, 출력해준다.
https://www.acmicpc.net/problem/1769
https://www.acmicpc.net/problem/11652딕셔너리로 입력 받습니다. 입력 받은 값이 딕셔너리 안에 존재한다면 1를 더해주고 없다면 key값으로 설정한 뒤 초기값을 1로 설정합니다. lambda 함수를 이용해 가장 많이 가지고 있는 정수
https://www.acmicpc.net/problem/10825lambda 식을 이용해 조건에 따라 우선순위를 설정한 뒤 정렬한다.
https://www.acmicpc.net/problem/9625메모리 초과 : B -> BA 로 바뀌고 나서 A -> B 일 때, 앞에서 바뀐 A의 값이 다시 B로 바뀔 수 있어서 A대신 C로 입력 받은 뒤 마지막에 다시 A로 바꿔주는 코드였다. 근데 아마
https://www.acmicpc.net/problem/1991딕셔너리를 이용해서 문제를 풀었다. treeparent_node = left_node, right_node로 입력받아 전위,중위,후위 순회에 맞게 출력했다.
📍백준 11725번 문제 https://www.acmicpc.net/problem/11725 코드 풀이
https://www.acmicpc.net/problem/2667bfs를 이용해서 풀었다.
https://www.acmicpc.net/problem/4963BFS를 이용하였으며, 대각선으로 연결되어 있는 사각형도 걸어갈 수 있는 사각형이므로 dx, dy에 대각선과 관련된 값을 넣었다. (ex(1,1)(-1,-1)(-1,1)(1,-1))이중 반복문 범
https://www.acmicpc.net/problem/2485최대공약수를 찾아서 푸는게 포인트 ! 중복된 값이 있으면 안되므로 가로수 간의 간격을 set에 저장한다. 이후, set에 저장된 값을 gcd 함수를 통해 최대공약수를 구한다. 간격간 최대 공약수로
📍백준 2491번 문제 https://www.acmicpc.net/problem/2491 코드 풀이 와 엄청 헤맸다..
https://www.acmicpc.net/problem/1049기타줄 개수를 6으로 나눠서 몫/ 나머지에 대한 경우를 나누어 풀이했다.
📍백준 1049번 문제 https://www.acmicpc.net/problem/1940 코드 풀이 material 을 반복문으로 돌리고 만약 이 값과 배열안에 있는 값이 더해서 m이 된다면 result에 1을 더하도록 했다. 근데 2-7 / 7-2 인 경우 모두
https://www.acmicpc.net/problem/11047값이 큰 동전부터 구해야하므로 반복문을 뒤에서부터 돌린다. 원하는 값을 동전으로 나눈 후, 몫을 결과값에 더해준다. 이후, 원하는 값에서 더해준 동전만큼 빼주면 된다.
https://www.acmicpc.net/problem/1931끝나는 시간 오름차순 -> 시작 시간 오름차순 으로 해서 풀어야 하는 문제!
https://www.acmicpc.net/problem/1018설마 4중 반복문일줄이야.. 이거밖에 방법이 없다고 생각했는데 맞았다^^!..
https://www.acmicpc.net/problem/7576먼저 토마토(1) 의 위치를 알아놓은뒤, que에 저장한다. 이후 bfs를 이용해 풀면 된다.
https://www.acmicpc.net/problem/11724
https://www.acmicpc.net/problem/10866deque를 이용하여 풀었다. 각각을 함수로 정의하기 귀찮아서 if문 내에서 다 정의했다..^^
https://www.acmicpc.net/problem/1874처음엔 무슨소리인가했는데 pop을 했을때의 숫자들로 배열을 만드는 문제였다.
https://www.acmicpc.net/problem/14061번에서는 remove와 insert를 사용하기 때문에 시간초과가 발생했다. 즉, append와 pop을 이용해서 문제를 풀어야한다.다른 사람들의 풀이를 보니 커서를 기준으로 왼쪽, 오른쪽 배열을
📍백준 1927번 문제 https://www.acmicpc.net/problem/1927 코드 풀이
https://www.acmicpc.net/problem/11279최소힙의 경우 heapq를 바로 이용하면 되지만, 최대힙의 경우 인덱스를 따로 설정해서 구현할 수 있다. 인덱스의 경우, 값을 음수로 만들어서 튜플로 0번 값에 인덱스를 넣으면 된다. (인덱스,
https://www.acmicpc.net/problem/11286절대값 힙은 최대 힙과 같이 풀면 된다.
https://www.acmicpc.net/problem/7785딕셔너리를 이용해서 풀었다.
https://www.acmicpc.net/problem/5397백준 1406번과 같은 방식으로 풀면 된다 !
https://www.acmicpc.net/problem/17413'<'와 '>', 공백인 경우를 나누어 문제를 풀며 된다. 새로운 배열 (word)를 이용하여 푸는 문제 ! 공백과 '<'이라면, 여태 입력 받은 문자를 res에 더해주면 된다. po
https://www.acmicpc.net/problem/10799와 진짜 문제 푸는 방법이 생각치도 못해서 놀랐다...만약 값이 '('이라면, 값을 더해준다.')'이라면, 이전의 값이 '('인지 ')'를 나누어 풀어주면 된다.
https://www.acmicpc.net/problem/2504백준 10799번과 풀이가 유사하다.
https://www.acmicpc.net/problem/17298풀이 2의 경우 stack을 이용해서 풀면 된다. 오큰수를 아직 구하지 못한 경우, stack에 넣어준다. stack에 값을 저장할 때, 이중배열구조를 통해 인덱스와 값을 동시에 넣어준다. 현재
https://www.acmicpc.net/problem/2493백준 17298과 풀이가 유사하다.
https://www.acmicpc.net/problem/12789처음에 서있는/주어진 줄(student)은 큐를 이용하고 한 명씩만 설 수 있는 공간은 스택을 이용하면 된다. 그래서 주어진 숫자와 학생 번호가 일치한다면 pop 또는 popleft를 이용하면
https://www.acmicpc.net/problem/1935 후위표기식의 경우 사칙연산과 가장 가까운 두 수 또는 식이 피연산자가 된다. 만약 입력받은 값이 문자라면 입력 받은 값을 temp(stack)에 추가한다.입력받은 값이 문자가 아닌 연산자라면 t
https://www.acmicpc.net/problem/1918
https://www.acmicpc.net/problem/11899결국 닫히지 않은 괄호의 개수를 출력하면 된다. 스택이 없는 경우엔 값을 추가해주고 스택이 존재한다면 '('인 경우 / ')'이면서 스택의 마지막 값이 ')'인 경우엔 스택에 현재의 값을 추갛재
https://www.acmicpc.net/problem/4889'{'와 '}'의 경우를 나누어 풀면 된다. 마지막에 남은 스택의 길이 //2 만큼 결과 값에 더해주면 된다.
https://www.acmicpc.net/problem/1436666부터 시작해서 모든 수를 탐색하고, 666이 존재하면 그에 맞게 cnt에 1을 더하면 된다.
https://www.acmicpc.net/problem/28278
https://www.acmicpc.net/problem/17952li0의 값이 1이라면 값을 점수, 해결시간 의 형태로 stack에 추가한다. 이 때, 과제는 받자마자 시작하므로 (해결시간 - 1) 을 한다li0의 값이 0이라면 스택이 있는지 / 없는지 경우
https://www.acmicpc.net/problem/1662메모리 초과 코드의 경우, stack에 저장되는 값에 의한 메모리 초과가 뜨는 경우.옳은 코드 : 사실 이보다 간단한 코드가 있다..^^.. 우선 stack내에 마지막 값을 압축되지 않은 문자열을
https://www.acmicpc.net/problem/1003피보나치 수열과 마찬가지로 0과 1의 개수도 f(n) = f(n-1) + f(n-2)의 식으로 풀 수 있다. 이차원 배열에 값을 저장후, 마지막값(-1)과 그 전 값(-2)을 더해주면 된다.
https://www.acmicpc.net/problem/1061030의 배수를 찾기 위해선 3의 배수이자 10의 배수인 수를 찾으면 된다. 10의 배수는 일의 자리가 0이면 된다. 3의 배수는 모든 자리의 숫자의 합이 3의 배수이면 된다. 가장 큰 30의 배
https://www.acmicpc.net/problem/2217가장 값이 작은 밧줄에 맞춰 무게를 매달 수 있으므로 오름차순으로 정렬한다.모든 밧줄을 사용하지 않아도 되므로 반복문을 사용하여 모든 경우의 수를 구해준다. 현재 밧줄부터 맨 뒤의 밧줄까지의 개수
https://www.acmicpc.net/problem/11726가로 타일은 꼭 2개씩 세트로 배치해야하므로 2의 배수만 가능하다. n = 1 일때는 1, n = 2일때는 2, n = 3일때는 3(1+2), n = 4일때는 5(2+3) 즉, 피보나치 수열이
https://www.acmicpc.net/problem/43751의 개수가 중요한데 값을 정수로 받으면, 각 자리 수를 추가하는데 있어 불편함이 있으므로 문자열로 정의했다. 바로 뒤에 1을 추가하기가 정수에 비해 수월하므로 문자열로 정의, 계산할때는 정수로
https://www.acmicpc.net/problem/2346큐를 이용해서 문제를 풀었다. 이중 배열을 이용해 풍선 안에 들어있는 종이 값, 풍선의 위치 를 저장한다.만약 음수가 나오면 절대값을 이용해 반복문을 돌린다. 종이 값이 양수라면 맨 앞의 값을 빼
https://www.acmicpc.net/problem/11723
https://www.acmicpc.net/problem/1735유클리드 호제 방법을 이용해 문제를 풀었다 :)
https://www.acmicpc.net/problem/1021deque를 이용해서 풀면 된다. 최소한으로 큐를 움직여야 하므로 원하는 값의 위치에 따라 오른쪽으로 움직일지 왼쪽으로 움직일지 결정하면 된다. 간단하게 값이 큐의 중간위치(길이의 절반)보다 오른
1 = 1 (1개)2 = 1+1 , 2 (2개)3 = 1+1+1, 2+1, 1+2, 3 (4개)4 = 1+1+1+1, 2+1+1, 1+2+1, 1+1+2, 2+2, 3+1, 1+3 (7개)5 = 1+1+1+1+1, 2+1+1+1, 1+2+1+1, 1+1+2+1, 1+1
https://www.acmicpc.net/problem/1966que 내에서 최대값과 popleft()값(= 0번째 값, front)을 비교한다. 이때 한 칸씩 앞으로 이동했기 때문에 원하는 값의 위치(a)도 1을 빼준다.만약 front값과 최대값이 같다면,
https://www.acmicpc.net/problem/1654이분탐색을 이용
https://www.acmicpc.net/problem/10026BFS로 구하면 된다. 우선 적록색약이 아닌 사람의 구역의 수를 구한다. 이때 방문한 구역은 방문했다는 표시로 B는 X로, R과 G는 Y로 바꿔준다.R과 G의 값이 같은 이유는 적록색약인 사람은
https://www.acmicpc.net/problem/1987경로에 대한 최댓값을 구하는 것이므로 DFS로 구현해야 한다. 하 계속 메모리 초과 / 시간 초과 떠서 너무 빡쳤는데..^^...python 대신 pypy3 import sys sys.setrec
https://www.acmicpc.net/problem/13305가장 싼 기름으로 주유를 해야하므로 출발한 도로부터 현재 도로까지의 최저 기름값(minAmount)을 구해 이전 도시부터 현재 도시까지의 거리(kmi)를 곱하여 sumAmount에 더해주면 된다
https://www.acmicpc.net/problem/16953A에서 B로 가는 값을 구하는 것이 아니라, B에서 A로 가는 값을 구해야한다!
https://www.acmicpc.net/problem/1715가장 작은 두 개의 값을 heap에서 빼주고 두개의 값을 더해서 다시 heap에 더해주면 된다.
https://www.acmicpc.net/problem/14390,1이 연속되는 구간의 개수를 구해서 더 작은 값을 출력해주면 된다. 연속되는 구간을 구하는 경우의 수가 3개인데,1\. 현재 값과 이전 값이 같을 때2\. 현재 값 - 0, 이전 값 - 1 인
https://www.acmicpc.net/problem/1789자연수 N이 최대이려면 작은 값부터 순서대로 구해야한다.
https://www.acmicpc.net/problem/1449
https://www.acmicpc.net/problem/1541'-'가 나오면 이후 '+'을 괄호로 묶어 풀면 된다. 해결책은 빨리 나왔는데 코드로 구현하는 데에 오래 걸렸다.원래는 eval함수로 풀려했는데 0009-0009와 같이 0으로 시작하는 수는 풀
https://www.acmicpc.net/problem/1057연속되는 수여야 한다. 연속가능한 경우가 (짝수, 홀수) (홀수, 짝수) 인데 (짝수, 홀수)인 경우엔 같은 라운드에서 만날 수 없다. 그래서 둘 중에 작은 수가 홀수이면서 두 수의 차가 1인 경
https://www.acmicpc.net/problem/10974
https://www.acmicpc.net/problem/2003부분합이 작다면 end값을 1을 더해 구간을 늘립니다.반대로 부분합이 크다면 start 값에 1을 더해 구간을 줄입니다.부분합과 원하는 값이 같다면 cnt에 1을 더해주고 end 값에 1을 더해줍
https://www.acmicpc.net/problem/1753다익스트라 알고리즘을 이용하여 풀면 된다.
https://www.acmicpc.net/problem/2470투포인터와 이분탐색을 이용하면 된다. 정렬후, 배열 내의 첫번째값과 마지막값을 포인터 값(start, end)으로 설정한다. 두개의 값을 더한 후 , final에 값을 저장한다. start값과 e
https://www.acmicpc.net/problem/7795두 배열 모두 오름차순으로 정렬한다. arr1 값을 기준으로 반복문을 돌려준다. i값과 비교할 때, arr2의 처음 값부터 비교하는 것이 아닌 arr1에서 i값 이전 index 원소가 끝난 값부터
https://www.acmicpc.net/problem/1916다익스트라 알고리즘을 이용하여 풀면 된다. 답안 출력시 distanceend를 출력하면 된다.
https://www.acmicpc.net/problem/1238다익스트라 알고리즘을 이용해 풀었다.함수를 총 2개로 나누어 풀었다.X번 마을에 최단거리로 도착하는 함수X번 마을에서 최단거리로 출발하는 함수두 함수에서 return한 값을 합쳐 배열에 저장 후,
https://www.acmicpc.net/problem/1253특정 숫자를 제외한 숫자를 기준으로 배열을 만든다. 이후, 이분탐색을 이용해 '좋다'는 값을 구한다.
https://www.acmicpc.net/problem/18352다익스트라를 이용해 풀면 된다.
https://www.acmicpc.net/problem/13549BFS를 이용해서 풀면 된다.최단 시간을 구해야 하므로 이동시간이 0초인 2x가 가장 우선순위가 높다.2x는 appendleft하여 바로 queue돌릴 수 있도록 한다.나머지 값은 append(
https://www.acmicpc.net/problem/4485다익스트라를 이용하여 풀면 된다.
https://www.acmicpc.net/problem/2665BFS와 deque를 이용해서 풀었다. 1인 경우가 우선순위가 더 높으므로 appendleft를 이용하여 que의 맨 앞에 가져다 주었고, visitednx값은 이전에 방문한 값으로 넣어주었다.
https://www.acmicpc.net/problem/1261백준 2665번과 유사하다.
https://www.acmicpc.net/problem/1339알파벳을 딕셔너리에 저장한다.(ex. A:1010, B:1 )딕셔너리에서 값들만 가지고와 내림차순으로 정렬한다.정렬한 값들을 9부터 차례로 곱한뒤 res에 더해준다.
https://www.acmicpc.net/problem/19637이분탐색 어려워...개념은 아는데 이걸 풀이에 적용시키는게 어렵다...ㅠ\_ㅠ특정 숫자가 포함된 부분을 찾는게 중요!
https://www.acmicpc.net/problem/2644양방향 그래프 이므로 값을 입력받으면 graphi, graphj에 모두 각각의 값을 추가해준다. BFS를 이용해 문제를 풀었다.부모자식 관계가 아닐 때 -1을 출력해야 하므로 flag를 이용했다.
https://www.acmicpc.net/problem/7562이동할 수 있는 좌표가 (1,2)(-1,2)(1,-2)(-1,-2)(2,-1)(-2,-1)(2,1)(-2,1) 총 8개 이므로 각각을 dx dy로 완성한다. 방문하지 않은 노드라면 (visited
https://www.acmicpc.net/problem/1697
https://www.acmicpc.net/problem/14235최대힙을 이용해서 문제를 풀면 된다. 만약 입력받은 값이 0이라면, 아이에게 선물을 주어야 하므로 heappop을 통해 선물을 출력하면 된다.0이 아닌 선물 리스트를 입력받았다면, 선물의 개수인
처음에는 메모리초과가 떴다 ... ㅎㅎ...heap의 길이 < n을 힌트로 문제를 풀면 된다. 최소힙으로 풀었다. 힙의 길이가 n보다 작은 경우:그냥 heap에 추가하면 된다.힙의 길이가 n보다 크거나 같은 경우:힙에서 가장 작은 값과 현재 값을 비교한뒤, 현재
https://www.acmicpc.net/problem/21939문제 추천 시 어려운 문제와 쉬운 문제 추천이 모두 이루어지므로 minHeap과 maxHeap을 모두 만들어야 한다. 어려운 문제인 경우solved어려운 문제가 0이 아닌 경우, 이미 풀었던 문
https://www.acmicpc.net/problem/13335다리 길이만큼의 배열을 하나 만들어준다. (bridge)1초가 지났으므로 다리.popleft()를 하여 값을 빼준다. (도착했으므로) 만약 (현재 다리에 있는 차의 무게 + 현재 대기중인 첫번
https://www.acmicpc.net/problem/1655leftHeap에는 중간값보다 작은수가, rightHeap에는 중간값보다 큰수가 들어간다. 중간값의 경우, 외친 개수가 짝수개라면 2개의 값중 작은 값을 출력해야 하므로 leftHeap있어야 한다
https://www.acmicpc.net/problem/5014BFS 탐색을 이용해 문제를 풀었다.이동이 불가능한 경우를 알고자 flag를 이용해서 판별했다.
https://www.acmicpc.net/problem/2583문제 자체는 어렵지 않은데 직사각형 입력 받고 그걸 그래프에 표기하는게 좀 오래 걸렸다...🫥
https://www.acmicpc.net/problem/2573BFS를 이용해서 풀면 된다. 현재 위치를 기준으로 (0,-1),(0,1)(-1,0),(1,0)에 0이 있다면, temp에 1을 더해준다. for문이 끝난다면, 현재 위치에서 temp값을 빼준다.
https://www.acmicpc.net/problem/1926BFS를 이용해서 풀면 된다. BFS에서 방문한 값들을 return 값으로 받아, res에 더해준다.
https://www.acmicpc.net/problem/2589모든 육지에서 가장 먼 곳까지의 최단 거리를 구한다. 이후에 res값과 비교에 현재 위치에서 가장 먼 곳까지의 거리가 더 크다면, res에 이 값을 저장해주고, 아니라면 res값은 유지된다.모든
https://www.acmicpc.net/problem/13913다음 위치 값을 인덱스로 설정하고, 현재 위치를 배열의 값에 넣어준다visitednext = cur으로 저장해야, 마지막에 경로를 출력할 수 있다.
https://www.acmicpc.net/problem/16928
📍백준 12851번 문제 https://www.acmicpc.net/problem/12851 코드 풀이 최단 경로의 개수를 구해야 하므로 현재 위치와 마지막 위치가 같을때, break하면 안된다. cnt에 값을 추가해주고 continue로 다른 방법이 있는지
https://www.acmicpc.net/problem/1865벨만-포드 알고리즘을 이용하면 된다.
https://www.acmicpc.net/problem/7662visited라는 배열을 만든다. minArr와 maxArr에 값을 저장할때, (num, i)형태로 값을 저장한다. (몇번째에 어떤 값이 추가되었는지 알기 위해!)값을 지울 때, 몇번째에 들어온
https://www.acmicpc.net/problem/11657벨만-포드 알고리즘을 이용해 문제를 푼다.dist2:인 이유는 0번엔 값이 없고 1번은 출발했기 때문에 그렇다..!
https://www.acmicpc.net/problem/1932삼각형에서 맨 처음에 위치한 값과 마지막에 위치한 값은 비교 할 값이 없으므로 바로 위의 값을 더해주면 된다. 나머지 값은 자신의 현재 위치 j에서 이전 값인 j-1과 j번째 값 중 최대값을 찾아
https://www.acmicpc.net/problem/1149색을 기준으로 문제를 풀어준다. 현재 위치가 빨간색이라면 이전 값에서 파란색, 초록색 중 최소값을 뽑아 현재 값에 더해준다. \-> 다른 색도 마찬가지로 하면 된다.
📍백준 11053 문제 https://www.acmicpc.net/problem/11053 코드 풀이 arr에서 arr[i]>arr[j]가 True 라면, dp[i] = max(dp[i],dp[j]+1) 으로 값을 바꿔준다. arr[i] 보다 작은 위치
https://www.acmicpc.net/problem/2579점화식을 이용해서 풀면 된다.1\. 연속해서 올라 온 경우 => <span style="background-color:2. 점프에서 한 단계 넘어 온 경우 => <span style="
https://www.acmicpc.net/problem/14940BFS로 풀어주면 된다. 만약 que에 아무것도 들어있지 않다면, 이중반복문을 통해 원래 갈 수 있는 땅 중, 가지못한 땅을 찾는다.graphi == 1 and visitedi==False 이라
https://www.acmicpc.net/problem/1743이중반복문을 통해 roadi == -1이고 visitedi == False이라면 bfs을 실행합니다. 최대 크기를 구해야 하므로 max(현재 max값, bfs에서 나온 값)을 통해 최대 크기를 구
https://www.acmicpc.net/problem/9461
https://www.acmicpc.net/problem/1912현재 값과 현재 값 + 이전 값을 비교하면 된다. 예시 기준n = 2 :arr2 = max(10-4, -4) -> arr2 = 6n = 3 :arr3 = max(6+3, 3) -> arr3 =
https://www.acmicpc.net/problem/4179que에 3가지 값(위치x, 위치y, 지훈/불)을 넣어주었다.
https://www.acmicpc.net/problem/2156계단 문제와 유사하다.현재 값에서 가질 수 있는 경우의 수현재 위치를 건너 뛰는 경우 현재 위치 건너 뛰지 않음 + 이전 값을 건너 뛴 경우현재 위치 건너 뛰지 않음 + 이전 값을 건너 뛰지 않은
https://www.acmicpc.net/problem/5427!
https://www.acmicpc.net/problem/6593토마토 문제(백준 7569번) 와 유사하다.
https://www.acmicpc.net/problem/11052dpi 는 j는 1부터 i까지 증가하면서, dpi = dpi-j + pj 이다
https://www.acmicpc.net/problem/11727
https://www.acmicpc.net/problem/1182백트래킹 문제..........15649번 문제와 매우 유사하다
https://www.acmicpc.net/problem/15650
https://www.acmicpc.net/problem/1564915650번과 유사하지만 다른 점이 존재한다.15649번 같은 경우엔 모든 경우의 수 (=순열)가 나와야 하므로 15650번과 달리 범위를 지정하지 않고 풀면 된다.
https://www.acmicpc.net/problem/1717 집합을 결합할 때, 작은 값을 부모로 설정하여 값을 결합해주면 된다. {1}과 {3}을 결합하고 싶다면 배열 내 인덱스가 3인 자리에 1의 값을 넣어주면 된다. => 0,1,2,1,4,5
https://www.acmicpc.net/problem/11051조합의 원풀이대로 풀었습니다.n x(n-1)x(n-2)...(n-k+1)/k!
https://www.acmicpc.net/problem/10844뒷자리가 0이거나 9이면 인접한 수가 1개밖에 없다. (0의 경우 1, 9의 경우 8)뒷자리가 1~8인경우 인접한 수가 2개있다.(k인 경우, k-1 k+1)그래서 길이가 i이고 k값인 경우,
https://www.acmicpc.net/problem/11057계산을 해보니 규칙이 있어서 이렇게 풀었더니 답은 맞았다(!?) 정석 풀이는 아니지만, 조합을 이용해서도 가능하다.길이가 n이라면 10+(10+1)+(10+2)+...+(10+k-1)/k!을 해