개발자 바다의 파도

개발의 무인도에 갇혔다

전체 글 210

코딩테스트 입문 - 4일차 (C++)

4일차 - 수학, 배열 1번) 피자 나눠 먹기 (1) 이번 문제는 피자를 7조각으로 나눕니다. 만일 먹을 사람 수가 정수 n이면, 몇 판을 시켜야 할지 구하는 문제입니다. 이는 10번 if문에서 나머지 값이 0이면 딱 n/7만큼 해주면 되고, 만일 나머지 값이 남으면 n/7값에 1을 더해주면 됩니다. 2번) 피자 나눠 먹기 (2) 이번에는 피자를 6조각을 나누는데, 피자를 1조각도 남기지 않고 공평하게 다 피자를 먹어야 하는 조건입니다. 11번줄 for문에 시작해서 13번줄 if문 조건문이 달성 될 때까지 계속 루프문을 돌리면 됩니다. 3번) 피자 나눠 먹기 (3) 이번 문제는 피자를 slice만큼 조각을 냅니다. 그리고 사람의 수는 n이며, 각 한 사람들이 최소 1조각은 먹기 위해 피자를 몇 판을 주문..

코딩테스트 입문 - 3일차 (C++)

3일차 - 사칙연산, 배열, 수학 1번) 나머지 구하기 이번 문제는 나머지 값을 구하는 연산자인 %을 쓸 줄 아는지 확인하는 문제입니다. 2번) 중앙값 구하기 이번 문제는 주어진 백터 array를 오름차순으로 정렬을 해서 23번줄에 array의 크기를 2 나눈 값을 answer에 입력을 하면 되는 문제입니다. 3번) 최빈값 구하기 이번 문제는 주어진 백터 array에 최빈값을 구하는 문제입니다. 일단 저는 무식하게 백터 tempArr를 최대치인 1000을 초기화를 합니다. 이후 19번줄 for문에서 array[i]의 값을 tempArr의 인덱스 값으로 1씩 추가합니다. 이후 24번줄 for문에서 최빈값을 구합니다. 이 때 최빈값이 여러 개 일 경우를 대비해서, 만일 최빈값과 같은 수치를 나타내면 isSa..

11022 - A+B - 8 (C++)

문제 - 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 - 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다 (0 < A, B < 10) 출력 - 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A + B이다. 풀이 - 이번 문제는 cout에서 "Case #" 처럼 글자를 출력을 잘하는지 확인하는 문제입니다. 코드 복붙 주소 - https://github.com/ResToEons/BaekJoonAlgorithm/tree/main/3%20-%20%EB%B0%98%EB%B3%B5%EB%AC%B8/08%20-%20A%2B..

코딩테스트 입문 - 2일차 (C++)

2일차 - 사칙연산, 조건문, 배열 1번) 두 수의 나눗셈 이번 문제는 int인 정수를 말고 double로 약수를 나타낼 수 있는 수로 숫자를 받아서 나눈 다음 출력하면 됩니다. 2번) 숫자 비교하기 이번 문제는 숫자가 같으면 답을 1로 출력, 아니면 -1로 답을 출력하면 됩니다. 3번) 분수의 덧셈 이번 문제는 분자와 분모를 얻어서 합을 한 다음 기약분수를 구하면 되는 문제입니다. 일단 den3와 numer3을 분자1,2와 분모 1,2를 곱한 값으로 설정합니다. 이후 18번줄 for문에서는 분모를 나눌 수 있는지 확인하고, 31번줄 for문에서는 분자를 나눌 수 있는지 확인합니다. 나눌 수 있으면 den3와 numer3을 나눠서 기약분수를 구합니다. 만일 분자와 분모가 같은 수이면 이를 1로 만들어야하..

11021 - A+B - 7 (C++)

문제 - 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 - 첫째 줄에 테스트 케이스의 개수 T가 주어지다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 - 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. 풀이 - 이번 문제는 간단하게 for문을 써서 풀 수 있다. 코드 복붙 주소 - https://github.com/ResToEons/BaekJoonAlgorithm/tree/main/3%20-%20%EB%B0%98%EB%B3%B5%EB%AC%B8/07%20-%20A%2BB%20-%207%20(11021)

코딩테스트 입문 - 1일차 (C++)

1일차 - 사칙연산 1번) 두 수의 합 매우 간단한 사칙연산 중 합을 구하는 문제이다. 2번) 두 수의 차 매우 간단한 사칙연산 중 차를 구하는 문제이다. 3번) 두 수의 곱 매우 간단한 사칙연산 중 곱을 구하는 문제이다. 4번) 몫 구하기 매우 간단한 사칙연산 중 나누어서 몫 구하는 문제입니다. 코드 복붙 주소 - https://github.com/ResToEons/ProgrammersAlgorithm/tree/main/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8%20%EC%9E%85%EB%AC%B8/01%EC%9D%BC%EC%B0%A8

15552 - 빠른 A + B (C++)

문제 - 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin / cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다..

코딩 기초 트레이닝 - 25일차 (C++)

25일차 - 이차원 리스트 (배열) 1번) 정수를 나선형으로 배치하기 이번 문제는 유명한 2차원 배열 문제입니다. 저는 이번에는 enum Direction으로 RIGHT, DOWN, LEFT, UP으로 방향을 지정하고 값이 배열 안에 움직이는 느낌으로 풀었습니다. 만일 움직일 때 x축에 부딪치거나 y축으로 부딪치면, 방향을 바꿉니다. 부딫치는 조건은 배열 값이 0이 아니거나 배열 크기를 넘기거나 0보다 적은 경우입니다. 처음 방향을 오른쪽으로 정해야 하니 26번줄에 방향을 오른쪽으로 설정해줍니다. 이후 28번줄 for문으로 백터 answer에 0값을 넣어주면서 초기화 해줍니다. 이후 36번줄 while문에서 방향에 따라 배열에 값을 넣습니다. 오른쪽으로 갈 때 만일 벽에 부딪치면 방향을 down으로 바꾸..