소수를 쉽게 구하는 방법을 알게되었다.코드2부터 n까지의 수를 저장할 arr배열을 선언하였다.이 메인배열인 arr을 시작으로 첫번째 원소 즉, 소수를 찾고 해당 배수를 지울건데 while문을 이용해서 arr 배열의 길이가 0이되면 원소 삭제를 그만두게끔 한다.while
에라토스테네스의 체는 쉬웠는데 알고리즘 초보자인 나에겐 베르트랑 공준은 너무어려웠다. 2일정도는 머리를 싸매면서 한거같다.어려웠던 부분은 시간초과가 날 힘들게했고 너무 고민하다보니 아애 갈피가 잡히지 않았다.분명 에라토스테네스의 체를 통해서 소수를 구해서 에라토스테네스
N, L 입력두개가 주어지고앞에있는 N은 수의합, L는 연속된 수의 최소 개수이다.이를 통해 수열을 출력하라는 문제이다.L은 최소 개수이므로 조건에 맞을 때 까지 무한루프 돌림. 조건에 안맞으면 +1 한다. 그러다 L이 100보다크면 무한루프 탈출!(문제의 조건임.)N
입력되는 값의 팩토리얼을 구하고 마지막 숫자가 0이면 10씩 나누어가며 count 출력하면 되는문제자주 틀린 이유는 overFlowError500!같은 경우 너무 숫자가 큰데 이를 /를통해 나누면 float이 나온다. 그렇게 되면 오버플로우 발생.python3는 int
원에 앉아있는 사람의 수 : N이 원을 빙글빙글 돌면서 K번째 사람을 제거함나는 무한루프 내에서 변수 i에 대해 한번의 루프마다 1씩 증가하며 i가 K일때 의 리스트의 원소를 삭제하는식으로함.굳이이랬어야했나 싶다. 그냥 K - 1씩 더해가면서 해당 원소를 삭제하고 리스
이 문제는 요세푸스 문제와 비슷하게 리스트를 원으로 구현해야하는 문제이다.나는 리스트를 원으로 구현할때 무한루프 내에서 1씩증시키며 찾아갔다.이문제도 요세푸스처럼 %연산을 통해서 해결해보자.통과는 했지만 불만족스러운 코드 😅solution 😀충분히 할수 있는 수준이
선택정렬 -> 시간초과병합정렬 -> 시간초과파이썬에 내장된 sorted, sort함수 사용 -> 너무쉽게 성공sort(), sorted로 쉽게 sorting하는 법을 배움선택정렬은 O(n2)으로 시간초과 나기 쉽다퀵정렬도 좋지않다병합정렬은 O(nlogn)으로 위에 두개
파이썬에 내장된 sorted와 sort함수를 통해 sorting하는 법을 아는 나에겐 어렵지않았다.sorted의 key를 이용해서 custom sorting이 가능하다.lambda표현식으로 함수 쉽게 표현하는 법을 배움.try except로 파이썬에서 예외처리 하는 법
find함수findIndex = array.find('ㅋㅋ')\-> 'ㅋㅋ'가 있는 가장 첫번째 index를 반환한다.없으면 -1반환replace함수로 문자열 내에서 특정 문자열 삭제하기replace함수의 첫번째 인자는 변경할 타겟 문자열이고 두번째 문자열은 변경할 문
문제 주어진 문자열이 연속된 문자로 이루어진 그룹단어인지 체크하는문제이다. 문제는 이해하기 쉽다. word in arr문법을 통해서 풀었다. 코드 😀 arr에 빈배열을하나만들어놔서 문자열의 첫번째 문자부터 하나씩 넣어가며 비교했다. 확실히 그룹단어가 아닐 경우
정수의 개수와 합이되어야할 수가 주어진다음정수의 개수에 맞게 정수들이 입력된다.주어진 정수들의 조합으로 주어진 합이될 경우의 수를 구하는 문제이다.combinations를 이용해서 풀었다.정수들의 조합이 중복은 되면 안되기 때문에 조합을 통해서 풀었고 combinati
스택문제이다.입력된 수열이 되기 위해선 오름차순으로 push하는 방식의 stack을 push와 pop을 얼마나 해야할지에 대한 문제이다.여기서 힌트는 push를 오름차순으로 한다는 것이다.처음에 문제가 이해가 잘가지않았는데예시를 보며 노트에 직접써가며 해보니 쉽게 문제
문제 ❗ 어떠한 숫자에 대해서 이 숫자가 1, 2, 3중 최소 하나를 사용해서 1, 2, 3합의 조합으로 숫자를 만들수있는 경우의수를 묻는 문제이다. 문제의 중요한점은 이 숫자는 양수이고 11보다 작다는 것이다. 즉, 1부터 10까지의 숫자에 대해서만 경우의 수를 알
왼쪽방향으로 레이저를 쏘는 탑이 자기보다 큰 탑에만 레이저가 도달한다. 입력되는 탑의 길이에 맞게 수신되는 탑의 번호를 출력하라문제 자체는 어렵지않다.첫번째 방법이문제는 스택문제로 당연히 O(n2)을 하면 시간초과로 오류가 나온다.(완전탐색)두번째 방법스택을 이용.그치
전형적인 DP문제로 좀 어려운 문제이다.나는 처음에 이 문제를 접했을 때 DP 자체가 너무 약해서 DP를 다시공부하고 풀었다.그래도 스스로 못풀겠어서 유튜브나 다른 솔루션을 참고해가며 풀었다.왜 DP문제인가?1\. 큰문제를 작은 문제들로 나눌수 있다.2\. 큰문제에서
이 문제는 입력하는 데이터 값이 300,000까지로 되게 큰편이다. 그래서 완전 탐색이라던가 이런건 당연히 시간초과가 난다.이 문제는 queue를 사용해 sliding window개념을 통해 풀어야 한다.되게 까다로운 문제였다..친구의 이름의 길이의 수가 정해져 있다.
전형적인 BFS문제로 인접한 노드들부터 탐색해서 최단 경로(문제에선 최소의 일수)를 구하는 문제이다.BFS문제이므로 queue를 이용할 생각을 해야한다.파이썬으로 풀었으므로 deque를 이용함.처음에 익은 토마토들이 있는 위치를 큐에 넣음큐를 하나씩 돌면서 처음에 po
이진 트리에 대해 전위순회, 중위순회, 후위순회를 알고리즘으로 구현하는 문제이다. 재귀함수에 대한 공부가 될수 있는 문제이다여기서 개념들이진트리 : 자식노드가 최대 두개인 노드들로 이루어진 트리재귀함수 : 함수인 자기 자신을 다시 호출하는 함수, stack과 같은 형태
문제 BS를 이용해서 풀려했는데 시간초과로 풀수가 없었다. 그래서 풀이법을 찾는중 lower bound와 upper bound의 개념을 찾게되었다.