[Java, 자바] 백준 29700번, 우당탕탕 영화예매
알고리즘/백준2024. 2. 12. 23:09[Java, 자바] 백준 29700번, 우당탕탕 영화예매

백준 29700번 👉🏻 https://www.acmicpc.net/problem/29700 난이도 : 실버4 문제내용 도은이는 동아리 문화의 날을 맞이하여 동아리원들과 함께 좌석이 M행 N열의 직사각형 모양으로 배치되어 있는 영화관에서 영화를 보기로 했다. 도은이는 동아리원의 유대감을 중요하게 생각하기 때문에 이미 예매가 완료된 좌석을 피해 동아리원들이 모두 가로로 이어서 앉을 수 있도록 자리를 예매하고 싶어 한다. 도은이를 도와 모든 동아리원들이 가로로 이어서 앉을 수 있도록 예매하는 경우의 수는 총 몇 가지가 있을지 구해보자. 단, 예매한 좌석은 동일하지만, 각 사람이 앉는 위치만 바뀌는 경우는 한 가지로 본다. 입력 첫째 줄에 영화관 세로줄의 개수 N(1≤ N ≤ 1000)과 가로줄의 개수 M(1 ..

[Java, 자바] 백준 2839번, 설탕 배달
알고리즘/백준2024. 2. 9. 22:40[Java, 자바] 백준 2839번, 설탕 배달

백준 2839번 👉🏻 https://www.acmicpc.net/problem/2839 난이도 : 실버4 문제내용 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄..

[Java, 자바] 백준 1003번, 피보나치 함수
알고리즘/백준2024. 2. 9. 02:54[Java, 자바] 백준 1003번, 피보나치 함수

백준 1012번 👉🏻 https://www.acmicpc.net/problem/1003 난이도 : 실버3 문제내용 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 0을 출력하고, 0을 리턴한다. fibonacci(2)는 fibonacci(1)과 fibonacci(0)의 결과를 얻고, 1을 리턴한다. 첫 번째 호출한 fibonacci(..

[CS] 소프트웨어 생명주기(Software Development Life Cycle : SDLC)
IT이론/네트워크2024. 2. 8. 21:34[CS] 소프트웨어 생명주기(Software Development Life Cycle : SDLC)

정보처리기사 따려고 공부하는 김에 제대로 알아보자 ! 요약 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차 시스템의 개발부터 유지보수까지의 어떠한 작업이 이루어지는지에 대한 단계별로 정리 소프트웨어 생명주기 모델 단계 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수 1. 요구사항 분석 다양한 이해관계자의 요구사항을 고려하여 새로운 제품이나 변경될 제품의 요구와 조건을 결정하는 단계 개발할 소프트웨어의 기능과 제약조건 등을 실제 사용자와 함께 명확히 정의하는 단계 기능 / 비기능 요구사항으로 구분 기능 요구사항 개념 : 시스템이 제공하는 기능, 서비스에 대한 요구사항 특징 : 기능성, 완전성, 일관성 예) 쇼핑몰 장바구니 기능, 결제수단은 신용카드 포인트 결제, 무통장 입금 등이 ..

[Java, 자바] 백준 10798번, 세로읽기
알고리즘/백준2024. 2. 8. 12:44[Java, 자바] 백준 10798번, 세로읽기

백준 107898번 👉🏻 https://www.acmicpc.net/problem/10798 난이도 : 브론즈1 문제내용 아직 글을 모르는 영석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다. 이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 영석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다. 다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 만든다. 이런 식으로 다섯 개의 단어를 만든다. 아래 그림 1은 영석이가 칠판에 붙여 만든 단어들의 예이다. 한 줄의 단어는 글자들을 빈칸 없이 연속으로 나열해서 최대 15개의 글자들로 이루어진다. 또한 만들어진 다섯 개의 단어들의 글자 개수는 서로 ..

[Java, 자바] 백준 1110번, 더하기 사이클
알고리즘/백준2024. 2. 7. 22:54[Java, 자바] 백준 1110번, 더하기 사이클

백준 1110번 👉🏻 https://www.acmicpc.net/problem/1110 난이도 : 브론즈1 문제내용 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26..

[Java, 자바] 백준 1697번, 숨바꼭질
알고리즘/백준2024. 2. 5. 16:35[Java, 자바] 백준 1697번, 숨바꼭질

백준 1697번 👉🏻 https://www.acmicpc.net/problem/1697 난이도 : 실버1 문제내용 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 수빈이가 ..

[Algorithm] 브루트 포스(Brute Force)
알고리즘/알고리즘 정리2024. 2. 5. 12:41[Algorithm] 브루트 포스(Brute Force)

알고리즘에 대한 이해 ! 4자리 비밀번호를 풀어야할 경우 단순 무식하지만 0000부터 9999까지 모두 대입하여 값을 찾는 것이 브루트 포스 알고리즘 혹은 완전 탐색 알고리즘이라고 부릅니다 ! Brute는 '단순히, 순전히', Force는 '힘' 순전히 힘만 갖고 밀어붙인다 라는 의미를 가지고 있습니다. 컴퓨터는 약 1초에 1억번(10^8)의 연산이 가능하다고 알려져 있는데, 브루트포스는 전체를 탐색하기에 좋은 알고리즘 방식이 아닙니다....(600억을 확인한다면 600초가 걸리고 확인하는 데만 10분이...) 그래서 실제로 알고리즘을 풀이할 땐, 문제가 브루트포스로 해결 가능한지 확인 후 불가능하다면 다른 알고리즘을 적용해서 시간복잡도를 줄여 해결해야합니다 !

image