본문 바로가기

분류 전체보기

(98)
(JavaScript)문서 객체 다루기 세션을 진행하며 todoList, 로그인을 구현해 보았다. 이 과정에서 배운 것을 정리해보려 한다. HTML 문서가 로드된 후에 자바스크립트 코드를 실행할 수 있게 하기 document.addEventListener('DOMContentLoaded', callback); 를 사용하면, HTML 문서의 모든 요소(이미지, stylesheet, JavaScript파일 등)가 로드되었을 때 callback 함수가 실행된다. 일반적으로 로직, 함수가 어디서 시작하고 어떤 흐름으로 흘러가는지 알기 위해 init 함수를 만들고 callback함수로 init함수를 놓는다. HTML 요소 가져오기 동적인 일을 하려면 HTML 요소를 가져와 다뤄야 한다, 다음과 같은 방법으로 HTML에 있는 요소를 가져올 수 있다. 자..
(JavaScript)forEach, map, filter JavaScript 기초를 배우는 과정에서 forEach, map, filter를 배웠다. forEach, map, filter는 배열을 다루는 메소드이다. 각 요소들을 순환하며 원하는 연산을 실행할 수 있다. 1. forEach() 각 요소들을 전부 순회하며 함수를 실행한다. 다음과 같이 실행할 수 있다. const array = [1, 2, 3, 4, 5] array.forEach((element) => { console.log(element); }); //1 //2 //3 //4 //가 출력됨 모든 요소에 대해 어떤 연산이나 함수를 실행할 때 사용할 수 있다. 2. map() forEach와 같이 모든 요소를 순회하지만, 반환값이 존재하며, 요소의 값을 바꿔 새로운 배열을 반환한다. const ar..
Failed to resolve HEAD as a valid ref. 원인 및 해결 방법 git 명령어를 사용하다 블루스크린이 발생해서 노트북이 재부팅됐다. 짜증을 내며 다시 git log를 하려고 하니 Failed to resolve HEAD as a valid ref.가 나왔다. stackoverflow에서 원인을 찾아 보니 갑작스러운 power failure 혹은 다른 원인 때문이라고 했다. 블루스크린이 원인이라고 판단된다. .git 폴더를 삭제하고 다시 git init을 하기로 했다. 이전 .git 폴더의 모든 항목이 없어지지만, 확실한 방법이다. ※혹시 모르니 기존 프로젝트 폴더를 다른 곳에 저장해놓는 것이 좋다※ 1. git bash나 다른 터미널을 통해 해당 프로젝트의 폴더로 들어간다(cd). 2. rm -rf .git 으로 .git 폴더를 삭제한다. 3. git init으로 새..
24797번:알파벳 블록(Java) 양방향 queue(Deque)와 Stack을 이용해 풀었다. 명령어에 따라 맨 앞, 맨뒤에 문자를 추가해야 했으므로, 문자열은 Deque로 만들었다. 가장 나중에 추가된 문자를 제거해야 했으므로, Stack을 사용해 First In Last Out 방식을 사용했다. 마지막으로 추가된 문자가 맨 앞에 추가되었는지 맨뒤에 추가되었는지 두 가지의 값만 필요했기 때문에 Stack에 넣을 수 있는 자료형으로 Boolean을 택했다. Scanner scanner = new Scanner(System.in); Deque list = new LinkedList();//문자열 Stack history = new Stack();//마지막으로 넣은 문자가 앞에 넣은 문자인지 뒤에 넣은 문자인지 판별 int n = scann..
(JavaScript)개념 정리 준비과제를 하며 JavaScript를 복습했다. 간단하게 정리해보려 한다. JavaScript란? JavaScript는 웹 프로그래밍 언어로, 동적으로 웹 페이지를 만들고 사용자와 상호작용할 수 있도록 해 준다. HTML과 CSS와 함께 웹 페이지를 만들기 위한 필수적인 언어 중 하나이다. JavaScript는 이 두 언어를 보완하여 웹 페이지를 동적이고 상호작용적으로 만들어준다. JavaScript의 타입 JavaScript의 자료형은 Primitive Type과 Reference Type이 있다. Primitive Type은 기본 자료형으로 Primitive Type에 속하는 자료형은 다음과 같다. 1. Number : 정수, 실수를 가진다. 2. String : 문자나 문자열을 가진다. 큰따옴표와 ..
멋쟁이 사자처럼(명지대학교 자연) 11기 합격 항상 코딩을 혼자 해 왔다. 인터넷에 자료가 많기 때문에 공부하는 데에 어려움은 없었지만, 지난 학기에 팀 프로젝트를 하며 밤도 새 보고 결과물을 만들어 보니 함께 무언가를 만들어간다는 것이 얼마나 재미있는지 알게 되었다. 그래서 멋쟁이 사자처럼 동아리에 관심을 가지게 되었다.    DB와서버에 관심이 있던 터라 서버 파트에 지원했다. 지원할 때 자기소개 페이지(HTML, CSS만 사용)를 만들었어야 했는데, 기본적으로 HTML과 CSS는 할 줄 알아야 한다고 생각했기 때문에 당연하다는 마음가짐으로 준비해 지원했다.    자기소개서엔 지원동기와 올해의 목표, 노력해서 무언가를 달성한 경험, 웹 개발 경력 등이 있었다. 솔직히 백준이나 Java 공부는 나름 했다고 생각했지만, 웹 관련 공부는 학교 수업 들..
13414번: 수강신청(Java) 학번을 저장하면서 만약 이미 저장하고 있는 학번이라면(한번 더 클릭했다면) 삭제하고 다시 저장하면 순서의 맨 뒤로 저장된다. LinkedList를 써서 풀었더니 시간초과가 생겼다. 구글링을 해 보니 LinkedList의 add, remove 연산의 시간복잡도가 O(n)이라는 것이 원인이라는 결론이 나왔다. for문을 사용하며 입력을 받음과 동시에 add, remove를 하니 시간복잡도가 O(n^2) 이 되는 것이었다. 그래서 LinkedHashSet을 사용했다. 기존의 Set은 순서를 보장하지 않지만, LinkedHashSet은 순서를 보장하므로 클릭 순서에 따라 저장할 수 있다. 입력이 많으므로 BufferedReader를 사용했다. BufferedReader br = new BufferedReader..
1417번: 국회의원 선거(Java) 처음엔 int 배열을 사용해 푸려고 했었다. 하지만 Array.sort로 내림차순 정렬을 하기 위해선 Comparator.reverseOrder()을 사용해야 했기 때문에 int 배열 대신 Integer 배열을 사용해 풀기로 했다. 우선 다솜이는 기호 1번이기 떄문에 후보 수롤 입력받은 후 후보 수 - 1 만큼의 Integer 배열을 생성하고 다솜이의 득표수를 저장할 int 변수를 따로 만든다. 다음으로 후보들의 득표수를 입력받을 차례다. 우선 다솜이의 득표수를 따로 입력받은 후에 나머지 후보들의 득표 수를 입력받는다. Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); Integer[] list = new Integer[n-1]; ..
16165번: 걸그룹 마스터 준석이(Java) 익숙한 문제이다. HashMap을 써서 그룹명을 key로 가지고 멤버를 value로 가지게 한 후, 문제 유형에 따라 처리하면 된다. 우선 데이터를 입력받는다. Scanner scanner = new Scanner(System.in); int groupNum = scanner.nextInt(); int quizNum = scanner.nextInt(); HashMap glist = new HashMap(); String groupName, problem; int groupSize; for(int i = 0; i
9935번:문자열 폭발(Java) 처음에는 String과 contains, replace 함수를 사용해 풀었다. 그런데 메모리 초과가 났다. 문자열의 길이가 1,000,000이나 되는 것이 원인이라고 생각해 Stack을 사용해 풀었다. Stack에 문자열을 하나씩 넣으면서 Stack에 폭탄이 들어가게 되면 그 부분만큼 pop()을 해 주었다. stack의 크기가 폭탄 문자열의 길이 이상이 되었을 때부터 검사를 시작한다. stack에서 폭탄 문자열이 시작되는 지점부터 폭탄 문자열이 끝나는 지점까지의 모든 문자가 같으면 stack은 현재 폭탄 문자열을 포함하고 있는 의미이기 때문에, find에 true를 넣고 stack의 크기에서 폭탄 문자열의 길이만큼을 뺸 것을 get() 해 문자를 얻고 이게 폭탄 문자열의 charAt()과 다르면 fin..