본문 바로가기
728x90

분류 전체보기54

MVC패턴을 지키면서 코딩하는방법 이 글은 우아한테크의 10분 테크톡을 참고하여 작성하였습니다. MVC가 생겨난 이유?? 기능을 수정하거나 추가할 때마다 코드를 유지보수하기가 힘들었었다. MVC: 유지보수가 편해지는 코드 구성방식 Model: 데이터와 관련된 일을 하는 곳 Controller: Model과 View의 중계자역할 View: 사용자에게 보여지는 부분을 담당하는 곳 MVC 패턴을 지키면서 코딩하는 방법 1.Model은 Controller와 View에 의존하지 않아야 한다. (Model 내부에 Controller와 View에 관련된 코드가 있으면 안된다.) (데이터에 관련된 코드만 모아둠) ex) Model 클래스 2. View는 Model에만 의존해야하고, Controller에는 의존하면 안된다. (View 내부에 Model의.. 2023. 3. 29.
[프로그래머스] 소수 찾기- level1 프로그래머스 문제 중 "소수 찾기"라는 문제를 푸는데 이렇게 풀었더니 몇몇 테스트케이스에서 오류초과가 났다. 구글링을 했더니 "에라토스테네스의 체" 라는 방법을 알게 되었다. "에라토스테네스의 체" 란? 범위에서 합성수를 지우는 방식으로 소수를 찾는 방법. 1. 1은 제거 2. 지워지지 않은 수 중 제일 작은 2를 소수로 채택하고, 나머지 2의 배수를 모두 지운다. 3. 지워지지 않은 수 중 제일 작은 3을 소수로 채택하고, 나머지 3의 배수를 모두 지운다. 4. 지워지지 않은 수 중 제일 작은 5를 소수로 채택하고, 나머지 5의 배수를 모두 지운다. 5. (반복) 답 def solution(n): answer = set(range(2,n+1)) for i in range(2,n+1): if i in a.. 2023. 3. 8.
[백준]15649번 N과 M(1) c/c++ baaaarking dog 님 알고리즘강의 백트래킹파트를 참고하여 작성한 글입니다. 문제 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 설명 백트래킹이란?? 현재상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘이다. 가지치기처럼 그러셔 모든 경우의 수를 따라 그려볼 수 있다 (상태공간트리 라고도 불린다) arr는 m개 만큼 원소를 담을 배열 isused는 1~N까지의 숫자가 사용되었는지 안되었는지 확인하는 배열 사용 - True.. 2022. 8. 26.
[백준]1629번 곱셈 c/c++ baaaaarking dog님 알고리즘 강의를 참고한 내용입니당 문제 https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 설명 재귀 문제를 풀때 절차지향적 사고로 풀기보단 귀납적 사고로 푸는것이 좋다. (절차지향적 사고로 생각하려다가 머리속이 꼬일 수 있기때문에) 그럼 귀납적 방법이란게 뭐냐?? 1번 도미노가 쓰러진다 k번 도미노가 쓰러지면 k+1번 도미노도 쓰러진다. 이 문제는 b가 최대 21억 가까이 되기때문에 시간초과가 발생할 것이다. 이 사진의 로직을 이용하면 1승을 계산할 수 있다. k승을 계산했으면 2.. 2022. 8. 25.
728x90