IT/알고리즘, 코딩테스트 9

코딩테스트에서 문자열을 한번에 입력을 하는 방법 (백준 11382)

보통 Scanner sc = new Scanner(System.in)를 썼는데 77 77 7777 이런식으로 공백을 기준으로 입력을하는 문제가 나왔다. 아래와같이 BufferedReader 클래스로 입력을 받아주고 StringTokenizer로 공백을 기준으로 문자열로 뽑아주는 작업을 해주면된다. 백준 11382번 문제 예제 BufferedReader br = new BufferedReader(new InputStreamReader(System.in); StringTokenizer st = new StringTokenizer(br.readLine()); int A = Integer.parseInt(st.nextToken()); int B = Integer.parseInt(st.nextToken()); i..

자료구조 - Linked List

1. 구조 - 연결 리스트 - 연결된 공간에 데이터를 나열하는게 배열이고 Linked List는 떨어진 곳에 있는 데이터를 화살표로 연결해서 관리하는 데이터 구조이다. - 파이썬에서는 List 타입이 Linked List의 기능을 모두 지원한다. - 기본 구조와 용어는 @ Node: 데이터 저장 단위(데이터값, 포인터)로 구성이된다. @ pointer: 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고있는 공간이다. 2. 장단점 - 장점: 데이터 공간을 미리 할당하지 않아도된다.(배열은 미리 데이터 공간을 할당해야한다.) - 단점: 연결을 위한 별도 데이터 공간이 필요해서 저장공간 효율이 낮다. 연결 정보를 찾는 시간이 필요하므로 접근 속도가 느리다. 중간 데이터 삭제하면 앞뒤 데이터 연결을..

자료구조 개요

데이터를 담기위한 구조 # 자료구조의 종류 1. 선형 구조(linear data structure): 선형 저료구조는 하나의 데이터 뒤에 다른 데이터가 하나 존재하는 자료구조다. 데이터가 일렬로 연속적으로(순차적으로) 연결되어 있다. - 배열(array) - 연결 리스트(linked list) - 스택(stack) - 큐(queue) 2. 비선형 구조(non-linear data structure): 비선형 자료구조는 하나의 데이터 뒤에 다른 데이터가 여러 개 올 수 있는 자료구조다. 데이터가 일직선상으로 연결되어 있지 않아도 된다. - 트리(tree) - 그래프(graph) # 프로그램의 성능을 측정하는 방법 - 시간 복잡도(time complexity): 알고리즘에 사용되는 연산 횟수를 측정한다. -..

(JavaScript) 코테를 위한 기본적으로 알아야할 문법

# 빠른 출력을 할려면 코딩테스트에서는 시간이 제한되어있는데. 많은경우 시간초과가 되게된다. 예로 라인마다 코드를 읽어오게되면 라인이 많을경우 많은 시간이 걸리게된다. 메모리를 많이 사용하지만 출력시간을 빠르게 할 수 있다. 한꺼번에 모아뒀다가 출력하는 방식이다. (자바에서는 BufferedReader가 이걸위해 사용된다.) let answer = ''; /* 여러 출력 결과를 한 줄에 하나씩 출력하는게 아니라 하나의 문자열에 결과를 저장해서 한꺼번에 출력해주는거다. */ for (let i = 1; i (반환값) - 배열의 각 원소를 하나씩 확인하며, 각 원소는 currentValue에 해당합니다. - 반환값은 그 이후의 원소에 대하여 accumulator에 저장됩니다. */ let data = [5,..

코딩테스트 개요

# 문제에 따른 분류 1. 알고리즘 코딩테스트 - 문제별 능력을 평가 - 보통 5시간 내에 알고리즘 문제를 푼다. - 알고리즘을 이용해 문제를 해결할 수 있는 능력을 평가한다. 2. 개발 과제 코딩테스트 - 실질적인 개발 능력을 평가 - 하나의 프로그램을 완성시키는 것을 시험한다. - 시간단위에서 2주까지 보통 시간을 준다. - 그 회사에서 실제로 사용하는 컴퓨터 언어나 프레임워크를 사용하도록 요구하기도 한다. https://replit.com/ 웹사이트에서 코딩테스트를 위한 개발환경을 사용할 수 있다. - javascript를 연습할려면 기본적으로 node js를 골라주면 된다. # 시험 환경으로 분류 1. 온라인 코딩테스트 - 문제를 보고 정답을 작성하면된다. - 공채에서는 혼자 힘으로 풀게 표절 검..

코딩테스트 공부방법

항상 풀이를 보기전에 꼭 해당하는 문제를 풀어보고 들어야한다. 문제를 본다는 것은 문제를 읽고 문제를 온전히 이해하고 풀이를 생각해보는 과정을 필수로 가져야한다는것 고민해봤는데 나오는 풀이가 없는거랑 생각도 해보지않고 풀이를 보는것은 완전히 다르다. 풀이만보고 이해했다고 하는것은 학습속도는 빠르겠지만 처음배울때 스스로 고민을 해보지않으면 제대로 체화가 되지않는다. 나중에 비슷한 문제가 나와도 적용하기 힘들 수 있다.