Time does not change us. It just unfolds us.

전체 글 131

2022-01-06 Thu

어제부터 다시 운동을 시작했다. 나태한 스스로의 모습이 너무 싫어서 개선해보고자 관련 서적을 읽고 있다. Today Xojm Learned 프로그래머스(카카오 lv2) 튜플 (https://x-ojm.tistory.com/88) 토익스피킹 part3 study To do list 프로그래머스 카카오 문제 Lv2 (6/18) 토익스피킹 part2 강의 수강 SUN MON TUE WED THU FRI SAT 4 5 6 7 8 알고리즘-문자열 압축 part1,2 정리 프린트 과제 5문제 part3 정리 알고리즘 part3 교재 문제 확인 프린트 과제 5문제 세이임 매직템 암기 휴가 9 10 11 12 13 14 15 휴가 16 17 18 19 20 21 22 휴가 휴가 TOEIC SPEAKING TEST jp..

Study Plan/TXL 2022.01.06

[카카오]Lv2 문자열 압축(실패)

아 하기 싫어..... 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcabcdede"와 같은 문자열은 전혀 압축되지 않습니다. "어피치"는 이러한 단점을 해결하기 위해 문자열을..

Coding Test 2022.01.05

2022-01-04 Tue

토익스피킹 강의가 사라졌다. 으아아앙아ㅏ Today Xojm Learned 프로그래머스(카카오 lv2) 문자열 압축 토익스피킹 part2 강의 끝내기 To do list 프로그래머스 카카오 문제 Lv2 (4/18) 토익스피킹 part2 강의 수강 SUN MON TUE WED THU FRI SAT 4 5 6 7 8 part1,2 정리 프린트 과제 5문제 part3 정리 프린트 과제 5문제 9 10 11 12 13 14 15 TOEIC SPEAKING TEST jpaShop 강의 이수 (https://github.com/enqjswo97/jpashop) GitHub - enqjswo97/jpashop: inflearn lecture for Spring Boot and JPA inflearn lecture f..

Study Plan/TXL 2022.01.04

[카카오]Lv2 메뉴 리뉴얼 (비트연산, 부분집합, map조회)

이번 문제는 진짜 오래 풀었다. 부분집합을 만들어서 풀어야겠다고 생각해서 비트를 이용하였는데, 아래의 방법으로 부분집합을 만드는 순간 시간초과가 되어버렸다. 다른 사람의 소스를 보면서 재귀합수 방법으로 이해하고 다시 풀어보니 생각보다 간단했다. map을 모두 조회하는 방법, range based for문을 사용하는 방법을 이해했다. 무엇보다 문제를 제대로 읽자^___^... void printSubsets(char arr[], int n) { for (int i = 0; i < (1

Coding Test 2022.01.02

2022-01-02 Sun

Today Xojm Learned 프로그래머스(카카오 lv2) 메뉴 리뉴얼 https://x-ojm.tistory.com/83 c++ 문법 : range based for문, 부분집합 구현(재귀, 비트연산), map 조회 To do list jpaShop 강의 이수 (https://github.com/enqjswo97/jpashop) GitHub - enqjswo97/jpashop: inflearn lecture for Spring Boot and JPA inflearn lecture for Spring Boot and JPA. Contribute to enqjswo97/jpashop development by creating an account on GitHub. github.com 프로그래머스 카카오..

Study Plan/TXL 2022.01.02

[카카오]Lv2 뉴스 클러스터링

문제는 쉬운데 너무 비효율적으로 단순히 짰다... 다른 사람거 보니 낫닝겐... 모두 소문자로 만들기 transform(str1.begin(), str1.end(), str1.begin(), ::tolower); transform(str2.begin(), str2.end(), str2.begin(), ::tolower); 문자열 비교하기 (교집합) for (int i = 0; i < str1.size() - 1; i++) if (isalpha(str1[i]) && isalpha(str1[i+1])) hash1[str1.substr(i, 2)]++; 문제 설명 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum..

Coding Test 2021.12.31

2021-12-29 Wed

어제 스걸파 보느라 영어스피킹 공부를 못했다... 프로그래머스 카카오 문제는 사람들이 많이 해결한 순으로 풀고 있다. Today Xojm Learned 프로그래머스(카카오 lv2) 괄호 변환 https://x-ojm.tistory.com/79 토익스피킹 part2 강의 1 To do list jpaShop 강의 이수 (https://github.com/enqjswo97/jpashop) GitHub - enqjswo97/jpashop: inflearn lecture for Spring Boot and JPA inflearn lecture for Spring Boot and JPA. Contribute to enqjswo97/jpashop development by creating an account on ..

Study Plan/TXL 2021.12.30

[카카오]Lv2괄호 변환

40' 좀 넘게 걸렸다 재귀를 쓰는 문제였지만 어렵진 않았다. 괄호가 잘 맞는지는 ( 괄호 개수와 ) 괄호 개수를 비교해보면 된다. 문제 설명 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 "콘"은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의 '(' 와 ')' 로만 이루어진 문자열이 있을 경..

Coding Test 2021.12.30

[카카오]오픈채팅방(split함수)

43'03" C++에서 string split함수 구현을 처음 해보았다. Java를 사용하다 보니 당연히 라이브러리에 정의되어 있을줄 알았다 ㅎ; pair로 DB를 생성하여 회원 정보를 저장했는데, vector로 정의하니 반복문이 많아 32개 케이스 중 6개가 시간초과 났다. 처음으로 map을 이용하여 풀어 시간초과 없이 훨씬 깔끔하게 작성할 수 있었다. https://hwan-shell.tistory.com/149 C++] map 사용법과 원리 map이란? 배열을과 비슷하게 생겼습니다. 배열은 index값을 통해 값을 찾죠. ex) a[3] = { 10. 20. 30 }; a[0] = 10, a[1] = 20, a[2] = 30. 이런식으로 a라는 배열에서 원하는 값을 얻기 위해 0 ~ 2까지의 번호를..

Coding Test 2021.12.28

2021-12-28 Thu

더 열심히 해야겠다고 자극이 된 날 Today Xojm Learned 프로그래머스 오픈채팅방 https://x-ojm.tistory.com/78 토익스피킹 part2 강의 1 map 사용법과 원리 이해 SonarQube 사용법 이해 (https://x-ojm.tistory.com/76) SonarQube와 Bamboo Atlassian에서 SonarQube와 Bamboo를 사용하고 있어 개념들을 찾아봤다. sonarqube 소나큐브는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 x-ojm.tistory.com To do list jpaShop 강의 이수 (https://github.com/enqjswo97/jpashop) GitHub - enqj..

Study Plan/TXL 2021.12.28

SonarQube와 Bamboo

Atlassian에서 SonarQube와 Bamboo를 사용하고 있어 개념들을 찾아봤다. sonarqube 소나큐브는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼이다. 소나큐브는 중복 코드, 코딩 표준, 유닛 테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점의 보고서를 제공하는 정적 코드 분석 도구이다. 정적 프로그램 분석은 실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 말한다. 대부분의 경우에 분석은 소스 코드의 버전 중 하나의 형태로 수행되며, 가끔은 목적 파일 형태로 분석된다. 이에 반하여 실행 중인 프로그램을 분석하는 것을 동적 프로그램 분석이라고..

Etc/Study 2021.12.28

2021-12-26 Sun

간만에 스벅가서 공부하니 집중도 잘 되고 재밌었다. 오늘 프로그래머스 카카오 lv1 문제를 다 풀었다. 내일부터는 lv2를 풀어야겠똬,,, Today Xojm Learned 프로그래머스 실패율 https://x-ojm.tistory.com/74 다트게임 https://x-ojm.tistory.com/73 비밀지도 https://x-ojm.tistory.com/72 토익스피킹 part2 강의 1 크롬 원격으로 데스크탑-아이패드 연동 To do list jpaShop 강의 이수 (https://github.com/enqjswo97/jpashop) GitHub - enqjswo97/jpashop: inflearn lecture for Spring Boot and JPA inflearn lecture for S..

Study Plan/TXL 2021.12.27

[카카오]실패율(벡터정렬)

분모가 0일 때를 생각 못해서 5개정도 실패하다가 아래 케이스를 고려해서 해결했다. N=5 stages = [2, 1, 2, 4, 2, 4, 3, 3] answer = [4, 3, 2, 1, 5] pair를 사용한 벡터를 first는 내림차순, second는 오름차순으로 정렬하는 함수를 이용했다. 문제 설명 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기..

Coding Test 2021.12.27

[카카오]다트 게임

1D2S#10S 위 같이 한자리 수가 아닌 숫자를 인식해야 하는 케이스를 고려하지 못해서 통과를 못했다. 아주아주 간단한 문젠데 노가다스럽게 했다.... 문제 설명 다트 게임 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Tr..

Coding Test 2021.12.27

[카카오]비밀지도

vector 문법이 기억안나서 오래걸렸다. int를 char로 변경하는 법도 오랜만에 본다ㅋ.ㅋ.ㅋ 2진법에서 10진법으로 변환을 처음해봤다. 카카오는 재밌는 문제가 많은듯,,, 다른 사람 풀이를 보니 비트연산자를 이용해서 간단하게 구현했다. 항상 다른 사람의 풀이를 보면 현타가 온다 ㅎ; 문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 ..

Coding Test 2021.12.26

[카카오]신규 아이디 추천

문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이..

Coding Test 2021.12.26

2021-12-24 Fri

본격적으로 코테랑 영어를 공부하기로 했다. 프로그래머스 카카오문제 Lv1부터 풀려고 한다. vector와 string 을 오랜만에 써서 함수들이 기억이 잘 안난다리 Today Xojm Learned 프로그래머스 '키패드 누르기' https://x-ojm.tistory.com/69 [프로그래머스]키패드 누르기 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄 x-ojm.tistory.com 정리 : https://x-ojm.tistory.com/65 [JPA]Hibernate과 QueryDSL QueryDSL은 써볼 기회는 없었지만 JPQL을 직접사용하거나 JPA Crit..

Study Plan/TXL 2021.12.24

[카카오]키패드 누르기

문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4..

Coding Test 2021.12.24

log4j 취약점

https://news.naver.com/main/read.naver?mode=LSD&mid=sec&sid1=105&oid=029&aid=0002710894 IT기업들 `로그4j` 헬프데스크 가동 LG CNS·더존비즈온 동시 대응 해커 공격대비해 비상근무체제 보안워룸… 고객 문의사항 답변 유사한 보안 이슈 발생도 서비스 LG CNS, 더존비즈온 등 IT기업들이 최근 치명적인 보안 취약점이 발견 news.naver.com 현재 log4j의 취약점때문에 얘기가 많았다. 우리 프로젝트도 2.16.0으로 버전을 변경하여 다시 배포하였다. 취약점의 원인은 아래 나무위키의 내용을 참고하여 이해하였다. https://namu.wiki/w/Log4j%20%EB%B3%B4%EC%95%88%20%EC%B7%A8%EC%95..

Web/Else 2021.12.20