PS, 언어 공부/알고리즘 문제풀이 22

[C++] 백준 온라인 저지 2292

문제 www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌�� www.acmicpc.net 설계 먼저 이 벌집의 규칙성은 다음과 같다. 이 그림에서, 같은 크기의 방 (같은 색깔로 색칠 된 곳)을 도는 수 즉, 층을 i라고 가정할 때 i 가 1일때는 1 (예외처리) i 가 2일때는 2~7 i 가 3일때는 8~19 .... 의 범위 안에 숫자들을 포함한다. 즉, 1층엔 1, 2층엔 2~7 3층엔 9~36번의 숫자가 포함된다. 그리고 층이 끝나는 지점의 숫자를 기점으로 나열해본다면. 이런 규칙성을 찾을 ..

[C++] 백준 온라인 저지 1712

문제 www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 설계 처음엔 굉장히 쉬운문제라고 생각했다. 그래서 while문을 돌렸다 대부분의 사람들은 아마 보자마자 나처럼 생각했을 것이다. "그냥 1000 + 70*n < 170*n 조건으로 while문 돌리면 풀겠는데?" 라고 생각했는데, 결과는 시간초과였다. 그렇게 무식하게 풀지 말란 소리였음. 그래서 짱구를 열심히 굴려봤다. 그래서 다음과 같은 결론을 도출했다. 물건의 가격이 170이고, 가변비용이 70이므로 고정비..

[JAVA] 백준 온라인 저지 9012

문제 설계 두가지 방법이 있다. 스택을 사용해서 푸는 방법과, 그냥 스택의 개념만 이용해서 푸는 방법. 스택을 사용해서 풀어보려고했는데 pop했을 때 오류가 나서 스택 개념만 이용한 cnt 변수 선언으로 풀었다.. 다른 스택을 이용한 코드를 보니 한번에 이해되긴 했다만, 뭔가 찝찝했다.. 코드 package java_practice; import java.io.IOException; import java.util.Scanner; public class boj_9012 { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); while (t-- > ..

[JAVA] 백준 온라인저지 9093

문제 코드 Scanner대신 BufferedReader, Writer를 써봤다. 이걸로 쓰는 습관을 들이는게 좋을듯. 먼저 어떻게 풀지 생각해보면.. 개행문자나 공백을 구분해서 역순으로 출력해야한다. 이 경우 스택을 쓰는게 간편하고, 일반적인 배열로도 풀 수 있지만 효율이 안좋으니 그건 패스하도록 하겠다. (그냥 문자열 입력받고, 배열의 크기만큼 for문돌려서 뒷 인덱스부터 출력하면된다. 근데 스택이있잖아?) 암튼 전체 코드다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader..

[JAVA] 백준 온라인 저지 10828

문제 코드 Stack을 import하지 말고 풀기와 하고 풀기 둘 다 해봤다. 뭐 어차피 평소엔 Stack import해서 쓰는데 복습할 겸.. Stack import X import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] stack = new int[n]; int size = 0; while(n-- > 0){ String cmd = sc.next(); if(cmd.equals("push")){ int num = Integer.parseInt(sc.next()); stack[size++] ..

[C++] 백준 온라인 저지 10818

문제 코드 최소 -1000000, 최대 1000000이라서 1000000만큼의 배열을 할당해줘도 틀린 답은 아니다. 하지만 그만큼 안쓰면 메모리 낭비다. 고로 동적 할당을 해주도록 하자. #include #include #include using namespace std; class solution { public: solution(); }; solution::solution() { int n; cin >> n; int* num; num = new int[n]; for (int i = 0; i > num[i]; } int min = num[0], max = num[0]; for (int i = 0; i < n; i++) { if (num[i] < min) min = num[..