https://www.acmicpc.net/problem/17129 17129번: 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유 첫째 줄에 정보섬 2층의 크기 n과 m이 주어진다. (1 ≤ n,m ≤ 3000, 4 ≤ n×m ≤ 9×106) 이후 n행 m열에 걸쳐 0, 1, 2, 3, 4, 5로만 구성된 Ai,j가 주어진다. Ai,j와 Ai,j+1사이에 공백은 주어지지 않는다. 2, www.acmicpc.net 문제 제목이 너무 충격적이라 정리하고 싶어서 정리.. 문제 딱따구리 위치(2)에서 가장 가까운 음식 (3, 4, 5)까지의 거리를 구하는 문제 풀이 딱따구리 위치를 시작점으로 두고 bfs탐색. 거리 저장용 dist, 방문 여부 확인용 visited배열 2개를 생성. bfs함수 안에서는 dist값 ..
분류 전체보기
https://www.acmicpc.net/problem/2800 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 문제 어떤 수식이 주어졌을 때 괄호를 제거해서 나올 수 있는 서로 다른 식을 출력해라. 괄호를 제거할 때 서로 쌍이 되는 것만 제거할 수 있다. 제거 후, 올바르지 못한 괄호가 생기면 안된다. (올바른 식이 아니다.) 풀이 일단 쌍이 되는 괄호의 인덱스를 찾는다. - 열린 괄호를 만나면 스택에 해당 인덱스를 저장 - 닫힌 괄호를 만나면 스택에서 pop을 한 값과 현..
엘리스 AI트랙 2기 수업 정리 Event란? - HTML 요소에 대한 사건의 발생 (ex. 마우스의 움직임 등) 이벤트 타입 - 폼, 키보드, 마우스, HTML DOM 등 //마우스 클릭 이벤트 click! 이벤트 핸들러 - 이벤트가 발생했을 때 그 처리를 담당한다. - 지정된 이벤트가 발생하면, 웹 브라우저는 해당 요소에 등록된 이벤트 핸들러를 실행시킨다. let btn = document.getElementById("foo"); //버튼 function showText(){ document.getElementById("text").innerHTML = "메롱"; } // 매개변수에 이벤트이름, 이벤트 발생시 실행되는 함수 // btn에 click이라는 이벤트가 추가됨 btn.addEventListe..

엘리스 AI트랙 2기 수업 내용 정리 DOM이란? - Document Object Model - 객체 지향 모델로 구조화된 문서를 표현하는 방식을 말한다. DOM의 트리 구조 HTML의 부모자식 관계를 나타낸 것 Document Method HTML 요소를 선택하기 위한 메소드 document.getElementById() //해당 아이디의 요소 선택 document.getElementByClassName() //해당 클래스에 속한 요소 선택 document.getElementByName() //해당 name을 갖는 요소 선택 document.querySelectorAll() //해당 선택자로 선택되는 요소를 모두 선택 document.querySelector() //해당 선택자로 선택되는 요소를 1개만..
자바스크립트란? 동적인 웹사이트 제작 시 사용하는 프로그래밍 언어 IoT, 하이브리드 앱 (웹 + 모바일 앱), 서버 개발 등 다양한 곳에 활용된다. 변수 숫자로 시작하면 안된다. 최대한 자세한 변수명을 작성해야 한다. 의미가 불명확한 단어의 조합을 피해야 한다. 기본 문법 : 줄 바꿈이 있다면 세미콜론을 생략할 수 있다. (automatic semicolon insertion) var fruit; //변수 선언 fruit = "apple" //변수 초기화 var fruit = "apple"; //이렇게 합칠 수 있음 console.log(fruit); //변수 안 데이터를 콘솔에 출력 document.write(fruit); //웹페이지에 데이터를 출력 HTML과 연동하기 위해서는 아래와 같은 코드를 ..
·개발일지
취업준비를 결심하고 열심히 달려왔다! 3월 말인가 삼성전자 서류 제출하고 4월쯤부터 코딩테스트 준비를 시작했었다.사실 가벼운 마음으로 내 서류는 어느 회사까지 붙을 수 있을까? 나는 코딩테스트를 통과할 수 있는 실력인가? 이런 걸 확인해보고 싶은 게 제일 컸어서 직무, 산업 안 가리고 내가 넣어보고 싶은 데를 다 넣었다. 🎵 스펙 학력 : 아주대학교 전자공학과 3.7/4.5 어학 : OPic IM1 기타 : 1년 반 학부 연구생 .. (그 외 학회 관련 활동들) 📑 서류 합격 : 삼성전자 CE/IM (SW개발), 크래프톤 (클라이언트 프로그래밍), 현대오토에버 (차량 응용 SW 개발) 탈락 : 현대자동차 (자율주행 시스템 개발), 신한은행 (신기술 활용 서비스 개발), SK브로드밴드 (Data Scien..
●○○ [문제] 링크 1. 기둥과 보의 삽입, 삭제 여부와 설치할 위치 정보가 주어진다. 2. 조건에 맞게 삽입, 삭제를 차례로 시뮬레이션할 수 있도록 구현한다. [풀이] 처음 구현한 방법은 기둥, 보를 삽입, 삭제할 때 조건을 확인하고 다 넣어주는 것이었다. 그렇게 했더니 코드가 길어지고 답은 틀리는데 디버깅이 안되서 책보고 다시 짰다. 1. build_frame을 한 줄씩 읽어 기둥인지 보인지, 삽입할 건지 삭제할 건지 확인한다. 2. 삽입이면 append하고 조건에 맞는 설치인지 확인한다. 조건에 맞지 않으면 remove 삭제도 마찬가지로 먼저 remove하고 조건에 맞지 않으면 다시 append 3. 조건에 맞는지 확인하는 코드는 간단하다. [외울 것] * [x, y, 0] in answer : ..
●○○ [문제] 링크 1. 알파벳으로 구성된 문자열이 입력으로 주어진다. 2. 1개 이상의 단위로 문자를 자르고 연속되는 문자열을 압축하여 표현한다. 예) aabbaccc를 1개 단위로 압축했을 때 => 2a2ba3c 3. 이렇게 문자열을 압축했을 때, 압축된 문자열의 최소 길이를 구해라. [풀이] 1. 문자열의 길이를 s라고 했을 때, s/2이상의 크기로 자르는 것은 의미가 없다. 따라서, 문자열을 자르는 크기는 1부터 s/2까지이다. 2. 자르는 단위를 size라고 한다면 연속되는 지 확인할 단어 word = s[:size]로 두고 for문으로 size만큼 더하면서 문자열을 탐색해 나간다. - 만약 다음 문자열이 word와 같으면 연속되므로 count에 1을 더해준다. - 만약 문자열이 연속하지 않으..
●○○ [문제] 링크 1. 현재 점수가 N점일 때, 이를 반으로 나눴을 때 양 쪽 각 자리수의 합이 같으면 럭키 스트레이트 기술을 사용할 수 있다. 예) 123402 => 123 / 402로 나누면 => 각 자리 수 합이 6으로 같다 [풀이] 1. 점수 N을 입력받는다 2. N//2를 기준으로 좌, 우 값을 더하고 비교한다 [외울 것] # 문자열 입력 a = input() # 문자를 int로 b = (int)a[0] [코드] score = input() N = len(score) left = 0 right = 0 for i in range(0, N//2): left += int(score[i]) for i in range(N//2, N): right += int(score[i]) if left == ri..
[문제] 1. 먼저 배포되어야할 순서대로 기능의 현재 개발 진도가 적힌 progresses와 각 기능의 개발 속도가 적힌 speeds가 주어진다. 우선순위가 낮은 기능이 높은 기능보다 먼저 개발이 완료되어도 먼저 배포x 우선순위가 높은 기능이 배포될 때 함께 배포된다. 2. 이 때, 배포마다 몇 개의 기능이 배포되는지를 return - 배포는 하루에 한 번 이루어진다. [풀이] 1. progresses와 speeds를 보고 배포날짜를 큐에 저장한다. (진도가 100%이상이 되는 날) - progresses + speeds*날짜 >= 100 - 날짜 = (100-진도) / 속도의 올림값 (ceil함수 사용) 2. 저장된 완료일 수를 탐색하며 기준보다 완료일이 더 크면 배포 못함. 1) 큐의 맨 앞 원소를 ..
[문제] 초 단위로 기록된 주식가격이 담긴 배열 prices가 주어진다. 이 때, 가격이 떨어지지 않은 기간은 몇 초인지 return한다. * 제한사항 prices의 각 가격은 1이상 10000이하 prices의 길이는 2이상 100000이하 [풀이] 1. 현재를 기준으로 다음 주식 가격을 확인한다. - 주식 가격이 떨어지지 않으면 count++ 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. = ₩3이 ₩2가 될 때, 1초가 걸리므로 그 동안은 가격이 떨어지지 않는다. - 위와 같은 설명 때문에 다음 주식 가격이 떨어지면 count++를 해주고 멈춘다. 2. answer에 count값을 넣어준다. [코드] #include #include using n..
[정답 코드] #include #include #include #include #include #include using namespace std; typedef struct { int idx; int y; int x; }info; typedef struct { int sum; int num; }comb_info; const int MAX = 51; int map[MAX][MAX]; //나라인구 정보 bool vis[MAX][MAX]; //탐색 체크 int N, L, R; bool can_move = true; //상,하,좌,우 int dy[4] = { -1,1,0,0 }; int dx[4] = { 0,0,-1,1 }; vector comb; int answer = 0; //디버깅용 프린트 void pr..