-
[CodeTree/Python] 용량이 다른 3개의 물통Solve 2024. 6. 26. 00:50
문제더보기용량이 다른 3개의 물통물을 담을 수 있고 각각 용량이 다른 물통 3개가 있습니다. 각 물통마다 담을 수 있는 최대 용량과 원래 담겨 있던 물의 양이 주어지고, 1번 물통에서 2번 물통으로, 2번 물통에서 3번 물통으로, 3번 물통에서 다시 1번 물통으로 내용물을 옮겨 담는 작업을 100번 진행했을 때, 각 물통에 들어있는 내용물의 양을 구하는 프로그램을 작성해보세요. 입력 형식3개의 줄에 걸쳐 한 줄에 하나씩 각 물통의 용량과 물통에 들어있던 내용물이 공백을 사이에 두고 주어집니다.1 ≤ 물의 용량 ≤ 1,000,000,000출력 형식1 → 2, 2 → 3, 3 → 1 순서로 옮겨담는 작업을 100번 반복한 이후의 결과를 3개의 줄에 걸쳐 출력합니다.첫 번째 줄에는 1번 물통에 남아있는 물의 ..
-
(7주차 45일) 정렬수업 내용 정리 2024. 6. 25. 17:12
알고리즘정렬(SORT)정렬(Sort)는 특정 순서에 따라 주어진 데이터를 나열한 것을 의미한다. > 삽입 정렬(Insertion Sort)데이터의 전체 영역에서 정렬된 영역과 정렬되지 않은 영역으로 나누고 정렬되지 않은 영역의 값을 정렬된 영역의 적절한 위치로 놓으며 정렬한다.시간 복잡도: 최악의 경우 O(N^2)> 버블 정렬(Bubble Sort)인접한 두 개의 원소를 검사하여 정렬하는 방법이다.뒤에서부터 정렬된다.> 병합 정렬(Merge Sort)정렬되지 않은 영역을 쪼개서 각각의 영역을 정렬하고 이를 합치며 정렬하는 방법이다.시간 복잡도: O(nlogN)> 퀵 정렬(Quick Sort)병합 정렬과 마찬가지로 배열을 분할해서 각각 재귀적으로 풀어 합치는 분할 정복법을 따르는 알고리즘이다.내용 차차 추..
-
[CodeTree/Python] n * m 표 이동 7 (미해결)Solve 2024. 6. 25. 09:10
직사각형 내부에 1이 존재할 수 없도록 주어진다고 가정하고 작성from collections import dequen, m = map(int, input().split())# 맵, 방문 리스트 생성graph = []visit = []graph.append([9]*(m+2))for _ in range(n): graph.append([9] + list(map(int, input().split())) + [9])graph.append([9]*(m+2))# 직사각형 크기, 시작점, 도착점 좌표 받기h, w, sx, sy, ex, ey = map(int, input().split())# print(graph[2][3])# print(n, m, h, w, sx, sy, ex, ey)# BFS# 큐: sx, s..
-
[CodeTree/Python] 개발자의 컴퓨터Solve 2024. 6. 25. 09:10
문제더보기개발자의 컴퓨터N명의 개발자가 시간 s 부터 t 까지 b개의 컴퓨터를 사용하려고 할 때, 모든 개발자가 무리없이 일을 하기 위해 필요한 컴퓨터의 최소 개수를 구하는 프로그램을 작성해보세요. 입력 형식첫 번째 줄에 정수 N이 주어집니다.두 번째 줄부터는 N개의 줄에 걸쳐 각 줄마다 s, t, b가 공백을 사이에 두고 주어집니다. 입력으로 주어지는 모든 s, t 끼리는 서로 값이 다름을 가정해도 좋습니다.1 ≤ N ≤ 1001 ≤ s 1 ≤ b ≤ 10출력 형식첫 번째 줄에 모든 개발자가 성공적으로 일을 끝내기 위해 필요한 최소 컴퓨터의 수를 출력합니다. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한..
-
[CodeTree/Python] CycleSolve 2024. 6. 25. 09:10
문제더보기Cycle숫자 N과 P가 주어집니다.처음에는 N으로 시작합니다.다음에는 그 숫자에 N을 곱하고 P로 나눈 나머지를 구합니다.이 행동을 반복하면 언젠가는 이미 등장했던 숫자가 등장하게 됩니다.이 때에 반복되는 사이클의 크기를 구하는 프로그램을 작성해보세요. 입력 형식첫번째 줄에 N과 P가 공백을 사이에 두고 주어집니다.1 ≤ N ≤ 1,0002 ≤ P ≤ 97출력 형식첫번째 줄에 반복되는 사이클의 숫자 개수를 출력하세요. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 풀이n, p = map(int, input().split())li = [n]co..
-
[한화시스템 BEYOND SW캠프 8기] 6주차 회고한화시스템 beyond SW 캠프 2024. 6. 24. 22:28
6주차 회고............시작😇 갑자기 가운데 정렬이 땡겨서 이렇게 써봄 6주차부터는 스트림을 끝으로 자바를 마무리하고 자료구조 파트에 넘어왔다.스트림 부분에서는 정말 정신없이 들어서 내용을 제대로 이해한 건지도 잘 모르겠다.나름대로 수업 자습 시간에 덜 푼 예제 문제를 집에서 다시 풀면서 복습한다며 시도도 하긴 했다.제대로 모르고 넘어가서 좀 마음에 걸림그나마 스레드 하는 동안 한숨 돌리고, 자료구조 구현 시작 배열, 링크드 리스트, 큐, 스택 등 이론 부분이나 패키지 끌어다 쓰는 방법만 알고 있었지직접 구현해본 건 처음이라(심지어 그걸 내가 자바로 하게 될 줄은 진심으로 몰랐음)개념을 제대로 잡는 데 도움이 많이 된 것 같다. 구현 부분이 끝나고, 람다식도 조금씩 진도를 나갔는데 이 부분도..
-
(6주차 39~41일) 자료구조수업 내용 정리 2024. 6. 24. 12:11
자료구조배열과 연결 리스트> 배열(Array)배열은 같은 타입의 원소들을 효율적으로 관리할 수 있는 자료 구조이다.배열은 하나의 변수 이름으로 동일한 타입의 데이터를 그룹화하여 관리할 수 있다.배열의 요소를 일렬로 나열하고 각 요소에 인덱스를 사용하여 원하는 데이터에 접근할 수 있다.> 연결 리스트(Linked List)배열의 약점인 삽입과 삭제 작업에 강한 자료 구조로 연결 리스트가 있다.연결 리스트는 각 요소를 포인터라고 부르는 화살표에 의해 한 줄로 나열한 것이다.단방향 연결 리스트는 각 노드를 연결하는 포인터가 어느 한쪽 방향이 된다.양방향 연결 리스트는 각 노드를 연결하는 포인터가 양방향이 된다.스택과 큐> 스택(Stack)스택은 데이터에 들어있는 요소 중에서 마지막에 삽입한 요소를 꺼내는 자료..
-
[Java] 자주 사용되는 Lombok 어노테이션🎸 2024. 6. 22. 19:42
Lombok 자바에서 Getter, Setter, toString과 같은 반복 메소드 작성을 최소화하도록 돕는 라이브러리다. 어노테이션을 부여하는 것만으로 게터세터, 생성자 구현 등이 가능하여 데이터 클래스 작성이 수월해진다. 자주 사용하는 어노테이션@Getter, @Setterprivate로 설정된 클래스 혹은 필드 변수를 외부에서 접근 또는 수정 가능하도록 getter, setter를 자동으로 구현한다.@NoArgsConstructor 기본 생성자를 자동으로 구현한다.@AllArgsConstructor 모든 필드에 대해서 초기화 값을 인수로 하는 생성자를 자동으로 구현한다.@RequiredArgsConstructorfinal 필드에 대해서 초기화 값을 인수로 하는 생성자를 자동으로 구현한다.@T..
-
(6주차 38일) 스레드수업 내용 정리 2024. 6. 19. 10:16
Java스레드(Thread)> 스레드프로세스운영체제에서 실행 중인 하나의 프로그램(애플리케이션)이다.프로그램이 실행될 때 마다 개별적으로 생성된다.하나의 프로그램(애플리케이션)은 다중 프로세스를 만들기도 한다.스레드프로세스 내에서 할당된 자원을 이용해 실제 작업을 수행하는 작업 단위이다.모든 프로세스는 하나 이상의 스레드를 가지며 각각 독립적인 작업 단위를 가진다.하나의 스레드는 하나의 코드 실행 흐름이기 때문에 한 프로세스 내에 여러 개의 스레드가 존재한다면 여러 개의 실행 흐름이 생긴다는 의미이다.메인 스레드모든 자바 프로그램(애플리케이션)은 메인 스레드가 main()메소드를 실행하면서 시작된다.메인 스레드는 main() 메소드의 첫 코드부터 아래로 순차적으로 실행되고, 코드를 모두 실행하거나 ret..
-
[CodeTree/Python] 화면에 출력Solve 2024. 6. 17. 21:50
문제더보기화면에 출력화면에 문자가 하나 입력되어있습니다. 다음의 연산을 통해 문자를 s개로 만들어 보려고 합니다.화면에 있는 모든 문자를 복사해서 클립보드에 저장합니다.클립보드에 있는 모든 문자를 화면에 붙여넣기합니다.화면에 있는 문자중 하나를 삭제합니다.클립보드의 내용은 항상 덮어씌어 지며, 클립보드의 문자는 삭제할 수 없고, 클립보드의 문자를 화면에 붙여넣으면 문자가 추가가됩니다.클립보드가 비어있으면 2번연산을 실행할 수 없으며, 일부만 복사할 수 없습니다.이러한 연산을 통해 문자를 s개 만드는데 필요한 최소 연산 횟수를 구하는 프로그램을 작성해보세요. 입력 형식첫 번째 줄에 s가 주어집니다.2 ≤ s ≤ 1,000출력 형식문자열을 s개 만들기 위해 필요한 최소 연산 횟수를 출력합니다. 코드트리 | ..