input 은 string 으로 받기 때문에 숫자로 받고 싶으면 int로 감싸기 !입력 받을 때 그냥 띄어씌기로 입력 받는다 !! 입력 예시를 꼼꼼하게 확인하자 !
🥲 개인적으로 이 세 문제 중에 가장 고민을 많이 했었던 문제였다. 나 같은 경우에는 세 개 모두 같을 때, 모두 다를 때를 먼저 해놓은 후, 두 개만 같을 경우를 따로 빼서 처리했다.a,b,c = map(int, input().split()) 으로 하면 더 간단하다
처음에 이 문제가 왜 맞힌 비율이 낮은가 했었는데,,, 문제 자체가 어렵다기 보다 문제를 이해하고 원하는 출력값을 내는게 좀 헷갈린..? 그런 문제 같다..나 같은 경우에는 일단 입력값을 받고 그 둘을 더한 다음 그 값을 배열에 저장하기 까지의 과정을 while 문에
저번에 알게되었던 map(int,input().split()) 을 활용했다. 저 map 은 iterator 로 반환되기 때문에 리스트로 받고 싶으면 list()를 활용해야 한다.1) 문자열을 배열로 각각 넣는 것은 j for j in q 이런 식으로 표현했다.근데 이것
나는 대충 이런식으로 코드를 작성했다. 인터넷에 다른 풀이를 찾아보니까 비슷하지만 더 이해하기 쉽게? 다음과 같은 코드로 풀었다list(map(int, input().split())) : list 로 만들어줌 !!행렬문제에는 나도 변수 이름을 row, col 로 하는
처음에는 다음과 같은 코드로 작성했는데 시간초과로 실패했다.다른 풀이를 조금 참고하면서 다시 작성했다.대문자로 다 변환한 후중복된 문자 없도록 set()함수로 감싼 후 다시 list() 로 하여 리스트화한다2에서 만든 리스트를 한바퀴 돌면서 각 알파벳들의 횟수를 arr
나 같은 경우 다음 아래와 같이 코드를 작성하였다.p가 손익분기적 (Break-Even Point) 라고 할 때, 계산식으로 나타내면cp > a + bp 이므로(c-b)p > a 로 나타낼 수 있다.
⭐️ 수학개념 ⭐️소수 : 1과 자기 자신 외의 약수를 가지지 않는 1보다 큰 자연수 (ex : 2,3,5,,,,)1보다 큰 수들 중 에 2와 자기 자신 내의 범위에 있는 숫자들 중에 나누어 떨어지면 소수 아님을 이용⭐️ if i > 1 을 반드시 넣어야한다 !!!
풀다가 arr.sort() 가 생각이 안나서 직접 정렬을(?) 했다하다보니 sort() 와 sorted() 가 있는데 헷갈려서 다른 블로그들을 참고하여 알아보았다.sort() : 원래 리스트에 영향을 줌sorted() : 정렬한 새로운 리스트가 반환되며, 원래 리스트에
💡 원판 개수와, start middle end 4개의 매개변수를 가진 함수를 만든다👉 원판이 1개일 경우 , 'start end' 를 출력하도록 한 후 함수를 빠져나온다👉 1️⃣ n-1개를 중간 middle 에 다 옮긴다 ➡️ 재귀함수👉 2️⃣ n번째
순열인 'permutations' 를 이용한다
집합 set()를 활용하여 풀이한다중복을 허용하지 않는다순서가 없다파이썬 딕셔너리는 해시값을 사용하기 때문에 O(1) 라고 한다 !!!!리스트로 변화하려면 list() 이용 !!
1번 (1085번)
유클리드 호제법을 활용하면 풀면 된다숫자 a,b가 있을 때 a를 b로 나눈 나머지와 b의 최대공약수는 a와 b의 최대공약수와 같다.최소공배수 X 최대공약수 = a X b..근데 사실 파이썬 내에 math.gcd(), math.lcd() 함수를 사용해도 된다..위와같이
시작하는 도시 와 방문하려는 도시 , 비용, 방문했던 도시들의 리스트 를 받아서 재귀함수 만들기젤 처음으로 시작하는 도시는 N 개임 이때, 도시로 이동하는 비용(cost)이 최저비용(ans) 보다 클 경우 굳이 방문할 필요 없이 끝낼 수 있다. --> 이 부분이 시간초
조합 을 이용해서 풀기 !!permutations : 순열 \- (1,2),(2,1)combinations : 조합 \- (1,2)
위 dfs 알고리즘 코드의 graph 의 형태와 같게 만들기
입력한 가로, 세로 길이로 0인 graph 를 만들고 k개의 배추가 심어진 위치를 for 문으로 해당 위치에 1을 저장한다dfs() 를 통해 방문한 곳은 0으로 만들고 심어진 곳은 True 를 반환하여 True 인 곳은 cnt 에 1씩 더한다⭐️⭐️⭐️⭐️⭐️이 문제의
트리는 사이클이 없는 요소이므로 이미 방문했던 노드에 다시 오는 경우에는 False 를 리턴해야한다
bfs 를 이용하여 풀기다른 블로그들 참고해보니 bfs 풀 때 deque 를 많이 이용하는 것같아서 참고해보았다 from collections import deque
✏️ 14395번 문제 💡 문제 아이디어 queue 를 이용할 때 정수 와 해당 정수까지의 연산 문자열 을 튜플 형식으로 저장한다 t가 1이상이기도 하고 0은 + , * , / , - 를 해도 같은 0이 나오기 때문에 - 는 고려하지 않는다 s,t 가 1이상 100
역 별 하이퍼 번호들을 저장한 stations 와 하이퍼 별 역들을 저장한 hypers 를 만든다이동할 역 번호를 이용하여 하이퍼 번호들을 리스트에 저장하고 그 리스트를 통해서 그 다음으로 바로 갈 수 있는 역으로 이동한다.
f(5) 까지 계산하면 위와 같이 된다즉, 0과 1의 개수는 각각 f(n-1) + f(n-2) 개수와 같다
LIS (최장 증가 부분 수열) 을 구하는 문제이다: 가장 긴 증가하는 부분 수열을 구하는 것예를들어 4 2 1 3 5 8 6 7 이 있고 오름차순을 유지하면서 최대한 긴 수열을 만들어야 한다면4 1 8 을 제거한1(혹은 2) 3 5 6 7이 될 수 있다이때 dpi =
이와 같은 다익스트라 문제는 두 가지 방법으로 풀 수 있다.1\. 순차탐색2\. 힙을 이용한 방법 두 가지이다. 두 가지 방법으로 풀기 전에 두 코드에서 필요한 것은 graph 와 distance 테이블 이다.graph : 이 문제의 (u,v,w) 를 정리한 테이블di
https://www.acmicpc.net/problem/1004사실 처음에 어떻게 풀어야할지 몰라서 다른 풀이를 참고해서 작성했다. 출발점과 도착점이 각각 행성계 안에 있으면 answer에 1씩 증가시킨다.단, 출발점과 도착점 둘다 하나의 행성계 안에 있으면
https://www.acmicpc.net/problem/14501계속 조건문 같은게 헷갈려서 생각보다 오래걸렸다 ㅠㅜ