토익스피킹 첫 시험 IH(Intermediate High) 후기, 공부 방법
·
+
토익스피킹 !! 걱정이 많았지만, 4월에 본 첫 시험에서 IH를 받았습니다 ! 시험 당일에 정말 망했다고 생각했는데 목표한 레벨이 나와서 너무 신기하고 기뻤습니다. 저는 약 2주 정도 준비하였고, 일주일 공부로 취득한 후기도 많이 봤지만 저는 불안하기도 하고 꼼꼼히 준비해서 가야 불안함을 덜 수 있을 것 같아 2주를 잡고 공부했습니다 ! 하지만 토익스피킹 시험 일주일 뒤에 정처기 실기 시험이 있었고, 학교 수업도 들어야 해서 2주 내내 토익스피킹 공부에만 집중할 수 없는 상황이었습니다. 그래도 매일 최소 2시간만이라도 꾸준히 하려고 노력했습니다. 되돌아보면 공부 시간도 중요하지만 말하는 시험이다보니 매일 말하는 연습을 꾸준히하는 것이 가장 중요한 것 같습니다. 공부 방법 처음엔 어떻게 공부해야 할지 전..
백준 / 2138번 / 전구와 스위치 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/2138 문제N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 N개의 전구들의 현재 상태와 우리가 만들고자 하는 상태가 주어졌을 때, 그 상태를 만들기 위해 스위치를 최소 몇 번 누르면 되는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 전구들의 현재 상태를 나타내는 숫자 N개가 공백 없이 주어진다. 그 다음 줄에는 우리가 만들고자 하는 전구들의 상태를 나타내는 숫자 N개가 공백 없이 주어진다. 0은 켜져 있는 상태, 1은 꺼져 있는 상태를 의미한다. 출력 첫째 줄에 답을 출력한다. 불가능한 경우..
세그먼트 트리 (Segment Tree)
·
Data Structures & Algorithms
세그먼트 트리란?세그먼트 트리는 구간의 합, 구간의 최솟값, 구간의 최댓값등을 빠르게 구할 때 사용합니다. 구간내의 다양한 값들을 구할 수 있고, 업데이트 되더라도 몇개의 숫자만 업데이트 하면 되기 때문에 유용하게 사용할 수 있습니다. 배열을 이진 트리처럼 분할하여 트리 형태로 표현각 노드는 특정 구간을 나타내고, 그 구간의 정보를 저장 트리 만들기어떠한 데이터들이 주어지고 그 데이터의 구간 합을 구하는 문제라면 누적합을 사용하지만 중간 중간 값이 업데이트 되거나, 합계가 아닌 최대값, 최소값등을 구해야 한다면 세그먼트 트리를 사용하면 됩니다. 이렇게 숫자들이 있습니다. 이 숫자들의 구간 합을 구하기 위해서 2개씩 합계를 구하겠습니다. 지금은 짝수개이기 때문에 2개씩 합계를 구할 수 있지만 홀수개인 ..
백준 / 1922번 / 네트워크 연결 / python 파이썬 / Union-Find Algorithm
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/1922 문제도현이는 컴퓨터와 컴퓨터를 모두 연결하는 네트워크를 구축하려 한다. 하지만 아쉽게도 허브가 있지 않아 컴퓨터와 컴퓨터를 직접 연결하여야 한다. 그런데 모두가 자료를 공유하기 위해서는 모든 컴퓨터가 연결이 되어 있어야 한다. (a와 b가 연결이 되어 있다는 말은 a에서 b로의 경로가 존재한다는 것을 의미한다. a에서 b를 연결하는 선이 있고, b와 c를 연결하는 선이 있으면 a와 c는 연결이 되어 있다.)그런데 이왕이면 컴퓨터를 연결하는 비용을 최소로 하여야 컴퓨터를 연결하는 비용 외에 다른 곳에 돈을 더 쓸 수 있을 것이다. 이제 각 컴퓨터를 연결하는데 필요한 비용이 주어졌을 때 모든 컴퓨터를 연결하는데 필요한 최소비용을 ..
백준 / 2357번 / 최솟값과 최댓값 / 세그먼트 트리 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/2357 문제N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000)개 주어졌을 때는 어려운 문제가 된다. 이 문제를 해결해 보자.여기서 a번째라는 것은 입력되는 순서로 a번째라는 이야기이다. 예를 들어 a=1, b=3이라면 입력된 순서대로 1번, 2번, 3번 정수 중에서 최소, 최댓값을 찾아야 한다. 각각의 정수들은 1이상 1,000,000,000이하의 값을 갖는다. 입력 첫째 줄에 N, M이 주어진다. 다음 N개의 줄에는 N개의 정수가 주어진다. 다음 M개..
[정처기 실기] 디자인 패턴 정리
·
+
디자인 패턴이란?디자인 패턴은 모듈 간의 세분화된 역할이나 인터페이스 간의 구체적인 구현 방법을 설계할 때 참고할 수 있는 전형적인 해결 방식 또는 예제를 의미합니다. 디자인 패턴은 문제 및 배경, 실제 적용된 사례, 재사용이 가능한 샘플 코드 등으로 구성되어 있습니다. 디자인 패턴의 분류 (GoF 기준)생성 패턴(Creational): 5개구조 패턴(Structural): 7개행위 패턴(Behavioral): 11개 디자인 패턴 사용의 장점코드 구조 파악이 용이하다 (범용적인 스타일 제공).객체지향 설계 및 구현의 생산성 향상에 적합하다.검증된 구조의 재사용을 통해 개발 시간과 비용 절감.개발자 간 원활한 의사소통이 가능하다.설계 변경 요청에 대한 유연한 대응이 가능하다. 디자인 패턴 사용의 단점초기 ..
백준 / 2839번 / 설탕 배달 / python 파이썬
·
Coding Test/Baekjoon
문제 :https://www.acmicpc.net/problem/2839 문제상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (3 ≤ N ≤ 500..
백준 / 1763번 / 최단경로 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/1753 문제 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다. 입력첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다. 서로..