본문 바로가기

TEAM STUDY/알고리즘 코딩 테스트 스터디

(31)
4회차 - 알고리즘 기록 : 페인트 📌 페인트 한 아이돌 그룹은 2집 앨범 발매 기념 콘서트를 열기로 하였다. 이 콘서트의 기획을 맞게 된 당신은 2집 앨범의 컨셉트에 맞게 콘서트장을 알록달록하게 꾸미고자 한다. 하지만 디자인 감각이 전혀 없던 당신은 어떻게하면 예쁘고 불규칙적으로 알록달록하게 색상을 배치할 수 있을지 고민을 하고있다. 당신은 콘서트장에 한 줄로 배치 된 좌석들 중 연속된 몇 칸을 골라 한 가지 색으로 색칠하고, 또 다른 연속된 몇 칸을 골라 색칠하는 과정을 반복하기로 하였다. 처음에 모든 좌석은 하얀색(0번 색상)으로 색칠되어 있으며, 당신은 연속 된 몇 칸의 좌석을 골라서 한 가지 색으로 칠할 수 있다. 당신은 0번부터 99번까지 총 100가지 색상을 사용할 수 있다. 0번은 항상 흰색이라고 가정한다. 그러므로 가장 처..
4회차 - 알고리즘 기록 : 전화번호 📌전화번호 용돈이 필요해진 지수는 한 설문조사 기관에서 아르바이트를 하게 되었다. 지수는 수 많은 사람들에게 전화를 통해 설문조사를 하는 일을 맡게 되었는데, 어느 날 휴식시간에 문득 사람들이 전화번호 뒷자리로 가장 많이 사용하는 번호는 무엇인지 궁금해졌다. 하지만 지수는 보유한 전화번호가 너무 많고, 전화번호의 뒷자리는 0000~9999의 총 1만가지의 종류가 있기에 눈으로 세는 것은 도저히 불가능할 것이라는 판단을 내렸다. 지수를 위하여 사람들의 전화번호 뒷자리 중 가장 많이 사용되는 번호를 찾아주자. 입력 형식 가장 첫 줄에 전화번호의 수 N이 1이상 10만 이하의 자연수로 주어진다. 그 후 총 N줄에 걸쳐서 공백없이 4개의 자연수로 구성 된 전화번호 뒷자리가 한 줄에 하나씩 주어진다. 전화번호 뒷..
3회차 - 알고리즘 기록 📌문제2G-버블정렬 구현하기 데이터의 수를 N이라고 하자. 아래의 과정을 N번 반복한다. 배열의 0번 칸의 숫자가 1번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다 배열의 1번 칸의 숫자가 2번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다 ... 배열의 N-2번 칸의 숫자가 N-1번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다. 입력 형식 첫 줄에는 데이터의 수를 나타내는 자연수 N이 주어진다. N은 1이상 1,000이하의 자연수이다. 두 번째 줄에는 공백으로 구분된 N개의 정수가 주어진다. 모든 정수는 32비트 정수형 데이터이다. 출력 형식 한 줄에 N개의 오름차순으로 정렬 된 숫자들을 공백으로 구분하여 출력한다. 예시 - 입력 5 35124 - 출력 1 2 3 4 5 생각 풀이 입력이 아래..
2회차 - 알고리즘 기록 📌문제2F-데스티니 감수성이 풍부한 명은이는 매일 밤 하늘을 바라 본다. 어느 날 명은이는 태양을 중심으로 공전하는 지구와 또 그 지구를 중심으로 공전하는 달의 관계를 보며 깊은 고뇌에 빠졌다. 그 천체들은 계속 주위를 멤돌면서도 결국 일정거리 이상으로 가까워 질 수 없는 운명이기 때문이다. 명은이는 다음과 같은 생각을 하게 되었다. "지금 하늘에 떠 있는 천체들 중 서로 가장 가까이 있는 쌍은 무엇일까?" 감수성이라곤 찾아볼 수 없는, 뼛속까지 이과인 당신은 실제로 천체들간의 거리를 측정하여 가장 가까이 있는 두 천체를 명은이에게 알려주려고 한다. 가장 가까이 위치한 두 천체를 찾아보자. 입력 형식 첫 줄에는 하늘에 떠 있는 천체의 수 N이 주어진다. N은 2이상 1,000이하의 자연수이다. 그 후 총..
1회차 - 알고리즘 기록 📌문제2A-도토리 키재기 도토리 나라의 도토리들이 다니는 도토리 고등학교에서는 매 달 재미있는 이벤트를 한다. 도토리 나라에서는 다른 도토리들 보다 큰 키를 가지는 것이 큰 경쟁력 중 하나였기에, 도토리 고등학교에서는 매 달마다 그 달에 생일이 있는 도토리들 중 가장 큰 키를 가진 도토리에게 상장을 수여한다. N개의 도토리에 대한 키와 생일 정보가 주어진다. 이 때 이번 달에 생일이 있는 도토리들 중 가장 키가 큰 도토리의 키를 출력하는 프로그램을 작성하자. 입력 형식 첫 줄에는 도토리의 수를 나타내는 N이 1이상 10만 이하의 자연수로 주어진다. 두 번째 줄에는 N개의 도토리의 키가 공백으로 구분된 1이상 10억 이하의 자연수로 주어진다. 세 번째 줄에는 N개의 도토리들의 생일이 속한 달을 나타내는 1..
[charter1] 선형 알고리즘 기초 반복 알고리즘 이해하기 반복문은 프로그래밍의 가장 중요한 패러다임 중 하나 입니다. 바로 컴퓨터의 빠른 연산 속도를 활용하여 사람과의 차이점을 만들어주기 때문이죠. 이 챕터에서 우리가 깨달아야 하는 점은 for나 while같은 반복문은 단순히 똑같은 명령어를 여러 번 실행하는 것 이상의 의미가 있다는 것입니다. 반복문은 반복되는 횟수를 가변적으로 결정할 수 있으며, 규칙적으로 순차적인 갱신 작업을 수행할 수 있습니다. 반복문 안의 코드 블럭에 가정과 의미부여를 함으로써 귀납적으로 새로운 알고리즘을 설계 할 수 있습니다. 이 강의에서는 각 문제를 통해서 문제의 전체 과정을 순차적으로 나누고 반복문을 통해 귀납적으로 답을 찾아낼 수 있는 방법을 다룹니다. 느낀점 파이썬과 자바의 반복문을 같이보니 신기했고 반..
[1] 튜토리얼 & 가이드 문제0A-출력해보기 문제가 이런거면 좋겠지만 ,, import java.util.*; class Main { public static void main(String[] args) { System.out.println("Hello World!"); } } 문제0B-입력받아보기 java 로 스캐너 처음 써봄 ,,, import java.util.*; class Main { public static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { //값을 저장할 변수를 만들고 int a , b; //두 정수를 입력받는다 a = scanner.nextInt(); b = scanner.nextInt(); //ans..