스파르탄365 스파르탄 365 1주차 (3) 셀프 넘버 백준 4673번 셀프넘버 문제링크 : 💡 풀이 전 계획과 생각 : 단순하게 자릿수를 나누어 합치자고 생각 : 자릿수를 while문을 통해 %와 // 을 통해서 나누기로 계획 💡 풀이 🧐 막혔던 점과 고민 1. 100부분에서 문제 발생 다른 수들은 문제가 없었으나 10의 배수에서 // 10을 하면 원하는 바인 1이 아니라 10이 나온다는 -> 형변환 없이 while문 만을 이용하여 해결하고자 ... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 BJ4673_셀프_넘버_python < 정보 정리 > 1) 입력값: 없음 (1 - 10,000 range) 2) 출력값: range 내의 모든 셀프 넘버 3) 제약조건: 1 <= N <= 10,000 4) 예외케이스: 없음 < 공통 로직 > d(ab) = ab + a + b => cd (cd는 셀프 넘버가 아니다) 1-10000 수에서 셀프 넘버가 아닌 수들을 빼준다. 처음엔 셀프넘버를 모두 찾자는 생각에 빠져 있어서 더 쉬운... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 탄 365 2주차 (2) - menus and orders 이분탐색 만들어 둔 함수 기억하지 시간복잡도 하나씩 확인하기 더욱 효율적인 방법은? 변수 지정에 있어서도 조금 더 고민해보는 것이 좋겠다고 생각했다. 개발업무를 들어가게 된다면 나만 보는 것이 아니기때문에 튜터님처럼 모두가 알아볼 수 있는 변수를 두어 가독성을 높여야겠다.... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 1주차 과제 4.ACM 호텔 BEST 풀이 베스트 풀이 코드- hongcheol님 베스트 풀이 선정 이유 acm hotel 문제를 푸신 분들 모두가 %와 // 연산자를 사용하여 방의 층수와 호수를 구하는 방식으로 문제를 해결하셨습니다. 이 풀이는 예제를 입력받고 출력하는 부분이 깔끔하다고 생각되고 이 문제의 핵심인 방의 층수와 호수를 구하는 부분 또한 읽기 편하다고 생각되어서 베스트 문제로 선정했습니다. 추가 참고 코드 추가로 저 또... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 5주차 (1) AC 참고사이트: 백준 5430번 AC 문제링크 : 💡 풀이 중 고민 [1,2,3,4]를 입력받아서 리스트로 어떻게 변환하지? ! 문자열 슬라이싱을 이용하는 방법이 있다. 런타임 에러 났다. -> 검색을 해 보니 'R' 명령어 때 진짜로 문자열을 다 뒤집어주면 시간초과 및 런타임 에러가 발생하는 것 같다 ! 해결 방법 : R의 개수를 파악해서 홀수, 짝수일 때를 파악해 앞에서 자를지 뒤에서 자를지... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 3주차 (4) 미로 탐색 백준 2178번 미로 탐색 문제링크 : 참고 : 💡 풀이 전 계획과 생각 최소 거리를 구하는 문제이니, bfs로 활용해보자 💡 풀이 (가장 깔끔하다 생각되는) 🧐 막혔던 점과 고민 visited 배열을 어떻게 활용하면 좋을까 + 1로 구성되어 있으니 누적하는 배열로 쓰자. 👏🏻 알게된 개념과 소감 반복문에서 바로 방향 리스트 선언 후 진행 누적하는 부분 🔥 해보고 싶은 것 [ __ ] 앞서 ... 스파르타코딩클럽알고리즘스파르탄365스파르타코딩클럽 스파르탄 365 5주차 (5) 동전2 참고사이트: 백준 2294번 동전2 문제링크 : 💡 풀이 중 고민 점화식을 어떻게 세울 것인가 동전의 개수가 최소가 되어야하니 min을 사용하겠지? 언제의 개수와 비교해야 하는가 이걸 코인 배열과 어떻게 엮어서 생각하는가 해결방법 가능한 방법을 모두 나열해서 써본다. ex. 12원이면 코인 배열에 있는 코인을 뺀 경우와 본인을 비교 dp[12-5]+1 , dp[12] !! 스킬 깨달음 예외 ... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 2주차 (3) 오큰수 백준 17298번 오큰수 문제링크 : 💡 풀이 전 계획과 생각 이중 for문을 통해 순차 탐색을 하면 되겠다 💡 풀이 틀린 코드 맞은 코드 🧐 막혔던 점과 고민 1. 시간초과 이중 for문을 통해 순차탐색을 하니 시간초과가 났다. 그래서 스택을 써야하나? 싶은 마음에 pop()함수를 이용했다. 2. pop을 쓰니 반복이 불가능 pop()을 쓰니 기존 원소가 사라져 첫 원소 이후로 반복이 불가... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 5주차 (3) 나무 자르기 참고사이트: 백준 2805번 나무 자르기 문제링크 : 💡 풀이 중 고민 middle 값 찾고 N개의 나무에서 뺀값을 더해서 (음수면 포함) M과 비교 후 맞으면 출력 --> 틀림 ? 위처럼 중간값을 왔다갔다하는 과정에서 답이 나오지 않는 경우를 발견했다. ! 해결 방법 ! 조건을 만족하는 최대의 나무 절단 높이를 찾으면 탈출한다. 조건을 보면, M과 딱 일치하지 않는 경우가 생김을 파악할 수... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 BJ10250_ACM_호텔_python < 정보 정리 > 1) 입력값: 테스트 케이스 T, Height H, Width W, Guest number G 2) 출력값: 방 호수 N 3) 제약조건: 1 <= H,W <= 99, 1 <= G <= H x W 4) 예외케이스: 없음 < 공통 로직 > G > H 일때는 H 값을 빼줄때 방 호수를 올려준다. G < H 일때는 G, H 차이값 만큼 층수를 올려준다. 이 문제는 특별히 막힌 점은... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽
스파르탄 365 1주차 (3) 셀프 넘버 백준 4673번 셀프넘버 문제링크 : 💡 풀이 전 계획과 생각 : 단순하게 자릿수를 나누어 합치자고 생각 : 자릿수를 while문을 통해 %와 // 을 통해서 나누기로 계획 💡 풀이 🧐 막혔던 점과 고민 1. 100부분에서 문제 발생 다른 수들은 문제가 없었으나 10의 배수에서 // 10을 하면 원하는 바인 1이 아니라 10이 나온다는 -> 형변환 없이 while문 만을 이용하여 해결하고자 ... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 BJ4673_셀프_넘버_python < 정보 정리 > 1) 입력값: 없음 (1 - 10,000 range) 2) 출력값: range 내의 모든 셀프 넘버 3) 제약조건: 1 <= N <= 10,000 4) 예외케이스: 없음 < 공통 로직 > d(ab) = ab + a + b => cd (cd는 셀프 넘버가 아니다) 1-10000 수에서 셀프 넘버가 아닌 수들을 빼준다. 처음엔 셀프넘버를 모두 찾자는 생각에 빠져 있어서 더 쉬운... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 탄 365 2주차 (2) - menus and orders 이분탐색 만들어 둔 함수 기억하지 시간복잡도 하나씩 확인하기 더욱 효율적인 방법은? 변수 지정에 있어서도 조금 더 고민해보는 것이 좋겠다고 생각했다. 개발업무를 들어가게 된다면 나만 보는 것이 아니기때문에 튜터님처럼 모두가 알아볼 수 있는 변수를 두어 가독성을 높여야겠다.... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 1주차 과제 4.ACM 호텔 BEST 풀이 베스트 풀이 코드- hongcheol님 베스트 풀이 선정 이유 acm hotel 문제를 푸신 분들 모두가 %와 // 연산자를 사용하여 방의 층수와 호수를 구하는 방식으로 문제를 해결하셨습니다. 이 풀이는 예제를 입력받고 출력하는 부분이 깔끔하다고 생각되고 이 문제의 핵심인 방의 층수와 호수를 구하는 부분 또한 읽기 편하다고 생각되어서 베스트 문제로 선정했습니다. 추가 참고 코드 추가로 저 또... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 5주차 (1) AC 참고사이트: 백준 5430번 AC 문제링크 : 💡 풀이 중 고민 [1,2,3,4]를 입력받아서 리스트로 어떻게 변환하지? ! 문자열 슬라이싱을 이용하는 방법이 있다. 런타임 에러 났다. -> 검색을 해 보니 'R' 명령어 때 진짜로 문자열을 다 뒤집어주면 시간초과 및 런타임 에러가 발생하는 것 같다 ! 해결 방법 : R의 개수를 파악해서 홀수, 짝수일 때를 파악해 앞에서 자를지 뒤에서 자를지... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 3주차 (4) 미로 탐색 백준 2178번 미로 탐색 문제링크 : 참고 : 💡 풀이 전 계획과 생각 최소 거리를 구하는 문제이니, bfs로 활용해보자 💡 풀이 (가장 깔끔하다 생각되는) 🧐 막혔던 점과 고민 visited 배열을 어떻게 활용하면 좋을까 + 1로 구성되어 있으니 누적하는 배열로 쓰자. 👏🏻 알게된 개념과 소감 반복문에서 바로 방향 리스트 선언 후 진행 누적하는 부분 🔥 해보고 싶은 것 [ __ ] 앞서 ... 스파르타코딩클럽알고리즘스파르탄365스파르타코딩클럽 스파르탄 365 5주차 (5) 동전2 참고사이트: 백준 2294번 동전2 문제링크 : 💡 풀이 중 고민 점화식을 어떻게 세울 것인가 동전의 개수가 최소가 되어야하니 min을 사용하겠지? 언제의 개수와 비교해야 하는가 이걸 코인 배열과 어떻게 엮어서 생각하는가 해결방법 가능한 방법을 모두 나열해서 써본다. ex. 12원이면 코인 배열에 있는 코인을 뺀 경우와 본인을 비교 dp[12-5]+1 , dp[12] !! 스킬 깨달음 예외 ... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 2주차 (3) 오큰수 백준 17298번 오큰수 문제링크 : 💡 풀이 전 계획과 생각 이중 for문을 통해 순차 탐색을 하면 되겠다 💡 풀이 틀린 코드 맞은 코드 🧐 막혔던 점과 고민 1. 시간초과 이중 for문을 통해 순차탐색을 하니 시간초과가 났다. 그래서 스택을 써야하나? 싶은 마음에 pop()함수를 이용했다. 2. pop을 쓰니 반복이 불가능 pop()을 쓰니 기존 원소가 사라져 첫 원소 이후로 반복이 불가... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 스파르탄 365 5주차 (3) 나무 자르기 참고사이트: 백준 2805번 나무 자르기 문제링크 : 💡 풀이 중 고민 middle 값 찾고 N개의 나무에서 뺀값을 더해서 (음수면 포함) M과 비교 후 맞으면 출력 --> 틀림 ? 위처럼 중간값을 왔다갔다하는 과정에서 답이 나오지 않는 경우를 발견했다. ! 해결 방법 ! 조건을 만족하는 최대의 나무 절단 높이를 찾으면 탈출한다. 조건을 보면, M과 딱 일치하지 않는 경우가 생김을 파악할 수... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽 BJ10250_ACM_호텔_python < 정보 정리 > 1) 입력값: 테스트 케이스 T, Height H, Width W, Guest number G 2) 출력값: 방 호수 N 3) 제약조건: 1 <= H,W <= 99, 1 <= G <= H x W 4) 예외케이스: 없음 < 공통 로직 > G > H 일때는 H 값을 빼줄때 방 호수를 올려준다. G < H 일때는 G, H 차이값 만큼 층수를 올려준다. 이 문제는 특별히 막힌 점은... 알고리즘스파르탄365스파르타코딩클럽스파르타코딩클럽