반응형
전체 글

전체 글

    [BOJ][Java] 2609번 - 최대공약수와 최대공배수

    [BOJ][Java] 2609번 - 최대공약수와 최대공배수

    문제 백준 2609번 문제: 최대공약수와 최대공배수 문제 설명 최대공약수와 최소공배수를 구하는 문제 최대공약수를 구하고 그것을 바탕으로 최소공배수를 구하면 된다. 최대공약수와 최소공배수는 아래와 같이 큰 값에서 작은 값의 나머지 값을 구해 0이 될 때까지 반복해서 구할 수 있다. 성공 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int first = sc.nextInt(); int second = sc.nextInt(); sc.close(); int big = Math.max(first, second); int small =..

    [BOJ][Java] 11653번 - 소인수분해

    문제 백준 11653번 문제: 소인수분해 문제 설명 소인수분해를 배우는 문제 정수 N이 주어졌을 때, 소인수분해하는 문제 말 그대로 소인수분해를 하는 문제이다. 나는 반복문을 안쓰고 싶었어서 재귀함수를 사용해 풀었다. 소인수분해를 해야 하는 수가 A라고 하면 A가 1이 되어 더 이상 나눌 수가 없을 때까지 재귀함수가 돌고 그 안에서는 A를 2부터 시작해서 1씩 커지도록 하는 숫자를 나눠 가며 소인수를 구해 나갔다. 재귀함수를 쓰면서 스택오버플로우 에러가 많이 나서 조심히 써야 할 것 같다. 성공 코드 import java.util.Scanner; public class Main { static int i = 2; public static void main(String[] args) { Scanner sc..

    [BOJ][Java] 1037번 - 약수

    문제 백준 1037번 문제: 약수 문제 설명 약수의 성질을 활용하는 문제 입력받은 수들을 약수로 가지는 수를 찾는 문제이다. 예로, 50의 약수를 찾아 본다면 아래와 같다. 2 5 10 25 더 큰 수인 80은 아래와 같다. 2 4 5 8 10 16 20 40 여기서 규칙을 찾을 수 있다. 만약 약수들이 배열에 담겨 있다면 인덱스가 0번인 수와 n-1(가장 끝의 인덱스)를 곱하면 원래의 찾으려는 수가 나온다. 그럼 다른 케이스를 찾아 보자. 9는 약수가 3뿐이다. 그렇기 때문에 인덱스가 0일 때와 n-1일 때의 숫자가 자연적으로 같다. 3*3이 되어 원하는 수를 찾을 수 있다. 하지만 이 약수들은 정렬되어 들어오지 않는다. 그래서 정렬이 필요하다. 성공 코드는 아래에서 볼 수 있다. 성공 코드 impor..

    [Programmers][Javascript] 12903번 - 가운데 글자 가져오기

    문제 [Programmers][Javascript] 12903번 - 가운데 글자 가져오기 문제 설명 글자 개수에 따라 다른 개수의 가운데 글자를 가져와 반환하는 문제 string의 길이가 홀수이면 가운데 한 글자만 반환해야 하고, 짝수이면 가운데 두 글자를 반환해야 한다. length를 2로 나눠서 중간값을 구한 후 if문을 사용해 substring으로 문자열을 뽑아냈다. 다른 사람 코드를 보니 substring을 사용하지 않고 string의 index로 가운데 글자를 뽑은 것을 볼 수 있었다. 머리 환기시킬 겸 풀어 봤다. 성공 코드 내 코드 const solution = s => { const middleIndex = Math.floor(s.length / 2); let answer = ""; if ..

    1월 회고 - 코드스쿼드, 책 읽기, 알고리즘

    목차 코드스쿼드 한달 후기 달성한 것 달성하지 못한 것 생각해 볼 것 1️⃣ 코드스쿼드 한달 후기 장점 자율적인 공부 환경을 가지고 있다. 즉, 스스로 공부하게끔 하고 멤버들끼리 공부 거리를 가지고 자유롭게 토론할 수 있다. 처음에는 어색함에 말을 잘 안 하고 있기도 했는데, 한 달이 지난 지금은 보다 자유롭게 얘기하는 분위기가 되었다. 왜? 라는 질문을 유도하는 교육 방식 첫 날 OT 시간부터 꾸준하게 강조하고 있는 부분이다. 첫 날에는 질문할 때 마음의 준비를 한다던가 떨리는 마음으로 했었는데, 지금은 궁금한 점이 있으면 일단 질문하고 보게 됐다. 개발 도서관 처럼 느껴지는 많은 양의 개발 관련 책 내가 읽고 싶었지만 망설였던 책들이 정말 많다. 짬을 내서 읽은 책도 있고, 읽다가 구매한 책도 있다...

    [BOJ][Javascript/nodejs] 1991번 - 트리 순회

    [BOJ][Javascript/nodejs] 1991번 - 트리 순회

    문제 백준 1991번 문제: 트리 순회 알고리즘 문제를 풀 때 javascript에서 주의해야 할 사항들 입력받을 때 prompt나 setPrompt 를 사용하면 틀렸습니다가 뜬다. readline을 통해 입력받으면 줄이 나뉘어져 있어도 무한정으로 계속 입력을 받는다. 예로, 입력이 8줄에서 끝난다면, 8줄 입력받은 후의 지점에서 close를 꼭 시켜줘야 한다. 그래서 while문을 쓰지 않아도 된다. 문제 설명 이진트리의 루트, 왼쪽, 오른쪽 값이 계속 들어오는 값을 트리로 만들고, 트리를 전위 순회, 중위 순회, 후위 순회를 한 결과를 한 줄에 하나씩 출력하는 문제 전위 순회(preorder) : (root -> left -> right) 1->2->4->5->3 중위 순회(inorder) : (le..

    [Javascript] 줄바꿈 없이 console에 출력하는 방법

    console.log를 한 줄에 쓰지 않으면 자동으로 줄바꿈이 된다. 이를 여러 줄에 쓰면서 한 줄에 나오게 하고 싶다면 process.stdout.writer를 쓰자 process.stdout.write();

    2020년 5주차(1월 5주차, 설 연휴) 회고

    2020년 5주차(1월 5주차, 설 연휴) 회고

    📚 그동안 한 일 1️⃣ 도난당한 패스워드 완독 후 리뷰 작성해 블로그 업로드 [리뷰][책] 도난당한 패스워드 2️⃣ IT 개발자의 거의 모든 것 완독 후 리뷰 작성해 블로그 업로드 [리뷰][책] IT 개발자의 거의 모든 것 3️⃣ 모두의 네트워크 4장까지 정리 후 GitHub 저장소에 Push Repository 보러가기 4️⃣ 그림으로 배우는 HTTP & Network 완독 5️⃣ Chrome Extension 설치 설치 목록 📌 추천 Extension Adblock : 어쩌다 보니 여러 개 깔게 됐다. 근데 아무거나 하나만 있으면 쾌적한 웹을 즐길 수 있다. submit_java : 백준이나 SWEA에서 문제를 풀 때 자바로 푼다면 IDE에서는 지정한 이름으로 클래스를 사용하게 된다. 하지만 문제 ..

    [리뷰][책] IT 개발자의 거의 모든 것

    [리뷰][책] IT 개발자의 거의 모든 것

    IT 개발자의 거의 모든 것 SI 개발자의 실무에 대해 알 수 있는 책 서비스 기업의 개발자보다 SI 기업의 개발자에 초점이 맞춰져 있다. 책의 뒷부분에 분야별 개발자의 역할과 하는 일에 대한 설명이 있는데 웹 개발자를 풀스택 개발자로 생략해서 말하는 것이 조금 아쉬웠다. IT 기업 중에 90%는 SI 기업이다. SI 기업의 문제점과 상하 관계 구조에 대해 잘 알 수 있어 좋았다. 나도 무조건 서비스 기업에 가서 일해야 한다는 마음이 있는 것은 아니기에 도움이 되는 책인 것 같다.

    [리뷰][책] 도난당한 패스워드

    [리뷰][책] 도난당한 패스워드

    도난당한 패스워드 한국 인터넷에서 살아 남는 법 한국 IT 보안 뿐만 아니라 한국 IT의 뿌리 깊은 문제점까지 짚어주는 책 대학교 1학년 때 보안에 관심이 생겨 정보보호학과 전필 수업을 들었던 적이 있다. 그 당시에는 공인인증서가 어떻게 작동하는지만 간단히 배웠기 때문에 문제점에 대한 인지가 거의 없었다. 외국은 보안을 각각의 기업이 책임져야 한다는 것과 우리나라가 소비자 개개인의 책임이 있는 것은 선택할 수 있는 부분이라고 생각했었다. 이 책을 읽고 지금의 한국 보안 시스템 자체가 틀린 것이라는 새로운 관점이 생겼다. 더불어 SSL이라는 보안 통신 방식을 개괄적으로 알려주고 있어서 통신에 관해서도 알 수 있다. 그림으로 배우는 HTTP & Network와 함께 보니 이해가 더 잘 됐다.

    [LeetCode][Javascript] 136번 - Single Number

    문제 [LeetCode][Javascript] 136번 - Single Number 문제 설명 배열에서 중복되지 않는 하나의 수를 찾는 문제 splice 사용 Set에 for문을 돌면서 중복값이 없는 수만 저장해도 되겠지만 문제에서는 기존 배열에서 처리하라는 말인 것 같아 쓰지 않았다. 숫자들을 정렬해 인덱스 뒤의 숫자부터 for문으로 중복되는 숫자들을 지워 나간다. 그러면 마지막에 남는 수가 중복되지 않은 하나의 수가 된다. XOR 연산 사용 미쳤다 너무 간단하게 해결된다. 문제에서 중복되는 숫자가 있으면 2번 들어있으니 XOR로 배열의 모든 숫자를 계산한다. XOR은 숫자를 2진수로 변환해 각 숫자가 같으면 0, 다르면 1로 나타내어지는 연산자이다. 즉, 같은 숫자를 비트 연산자로 계산하면 0이 된다..

    [추천] 노트북 사용 시 거북목 방지 제품

    [추천] 노트북 사용 시 거북목 방지 제품

    노트북은 기본적으로 사람의 시선보다 아래에 위치하게 되어 장시간 사용 시 거북목을 유발하게 된다. 이를 방지하기 위해 내가 구매하고 사용하고 있는 제품들을 소개하려고 한다. 휴대성을 생각한다면 플랫스탠드 접이식 노트북 거치대 장점 무게가 가볍다. 접이식이라 이동 시에는 펼쳐서 노트북 파우치에 같이 넣고 다니면 된다. 실용성도 있다. 어느 정도 시선을 높여 주면서 블루투스 키보드 없이 타자를 쳐도 손목에 무리가 가지 않는다. 지하철에서도 사용 가능하다. 책상이 없는 이동 중에서도 목을 보다 편하게 해준다. 단점 높이가 높지 않아 무의식 중에 목을 빼고 보게 된다. 하지만 블투 키보드를 사용하지 않고 쓰려면 감수해야 하는 불편함인 것 같다. 높이 조정이 거의 되지 않는다. 무게중심이 안맞으면 뒤로 넘어가서 ..

    [LeetCode][Javascript] 202번 - Happy Number

    문제 [LeetCode][Javascript] 202번 - Happy Number 문제 설명 숫자로 입력한 입력값 n을 문자열로 변환해 1글자씩 끊어 배열에 저장한다. 배열에서 reduce를 활용해 제곱합을 구해 calculate 변수에 저장한다. dp라는 배열에 이미 calculate 값이 이미 있다면 무한 반복하게 될테니 그것을 방지하기 위해 이미 있는 값이면 멈추고 false를 만환한다. dp에 없는 수이면 dp 배열에 추가한다. 반환값에 함수를 넣어 주면서 재귀적으로 실행될 수 있도록 한다. 성공 코드 const isHappy = (n, dp = []) => { if (n === 1) return true; let nArray = String(n).split(''); let calc..

    Visual Studio Code 단축키

    라인 삭제 Ctrl + Shift + K 멀티라인 주석 토글하기 Shift + Alt + A 자동 줄바꿈 사용하기 Alt + Z 수정했던 라인으로 이동하기 Alt + 좌우 방향키

    2020.01.21(화) 오늘의 회고

    잘한 점 - 밤코 끝까지 남아서 코드에 버그를 찾음 - 네트워크 주소 체계 구조를 알게 됐음 - 어제보다 코딩 많이 함 - 궁금한 것을 전보다 자연스럽게 물어보게 됐음(슬랙에 처음으로 올려봄) 못한 점 - 버그 해결 못함 - 커밋 거리가 쌓였는데 정리를 못함 - 대충 보고 이해했다고 생각하고 넘어감 -> 많이 말하고 들으면서 생각하지 못한 부분을 찾아나가야 함 해야 할 것 ## vscode - 단축키 라인삭제, 라인복사 등 익히기 - 들여쓰기 두칸만 하게 해주는 익스텐션 찾아서 받기