분류 전체보기(472)
-
Generate Document - Easy
Generate Document - Easy 이 문제의 경우에는 문자열의 문자를 map에 키값으로 1개씩 count해준다. 개수가 다를 경우에는 return false를 해주며 종료해주면 된다. 위의 예시를 보면 특정 문자를 한개씩 카운트 해주며 확인해보면 각 문자의 등장횟수가 같다. 그래서 output은 true가 나오게 된다. 더보기 #include using namespace std; bool generateDocument(string characters, string document) { map characterMap, documentMap; for(int i = 0; i < characters.size(); i++) characterMap[characters[i]]+=1; for(int i = ..
2021.03.27 -
Run Length Encoding(문자 개수 만큼 압축)
Run Length Encoding 이 문제는 문자열을 하나씩 세리다가 9개나 다른 문자가 나오면 저장을 할 수 있도록 압축을 하는 문제이다. 필자의 경우에는 한개씩 세리다가 이전 문자를 저장하며 9개가 되거나 문자가 달라지면 result 배열에 저장하는 방식으로 문제를 해결했습니다. 더보기 #include using namespace std; string runLengthEncoding(string str) { vector result; char currentChar = str[0]; int count = 1; for(int i = 1; i < str.size(); i++){ if(currentChar != str[i] || count == 9){ result.push_back(count+'0'); r..
2021.03.27 -
카이사르의 암호[Caesar Cipher] - easy
카이사르의 암호[Caesar Cipher] 카이사르 로마제국의 악당? 황제같은 이미지가 있다. 이 사람이 만들었다는 암호이다. 카이사르 암호란 특정 키 값을 각 문자에 더한 값만큼의 문자로 만드는 것이다. 즉 아래의 사진만큼 키 값을 더한 만큼의 문자를 만들어주면 되는 것이다. 여기서 따로 예외 처리를 해주어야 하는 것은 바로 'z' 이상으로 키 값이 넘어갔을 때나 키 값이 알파벳 개수보다 커질 때이다. 더해준 값이 넘어갔을 때다. 1. 알파뱃 개수보다 키 값이 커질 때 key %= 26; key 값에 나머지를 저장함으로써 키 값이 27이면 결국 1만큼 이동해준 것과 같기 때문에 26으로 나머지를 구해준다. 2. 키 값을 더했을 때 z보다 커질 때 newletterCode
2021.03.27 -
팰린드롬인지 체크하기 - easy
팰린드롬이란? 앞뒤가 똑같은 전화번호, 앞뒤가 똑같은 문자열 같은 것이다. 이 문자열이 팰린드롬인지 체크하는 문자열인데 크게 어렵지 않은 알고리즘이니 쉽게 풀어보도록 하자 Reverse 라이브러리 사용하기 더보기 #include using namespace std; bool isPalindrome(string str) { string compareString = str; reverse(compareString.begin(), compareString.end()); return str == compareString; } 우선 가장 쉬운 방법은 reverse라는 알고리즘 라이브러리에서 제공해주는 것을 사용하는 것이다. 그리고 원본의 문자열과 ==을 통해서 비교하여 true, false를 반환할 수 있다. 앞..
2021.03.27 -
3편 이미지 사이즈 최적화 부분 해결하기
이런 문제가 왜 생기는 걸까? 아래 사진을 보자 해당 이미지의 사이즈는 120 x 120 px이었지만 해당 이미지는 1200 x 1200px 이미지의 낭비가 발생했다. 즉 100배 사이즈가 큰 이미지를 가져 오기 때문에 이러한 이슈가 발생한 것이다. 강의에 따르면 레티나 디스플레이의 경우 하나의 픽셀에 더 많은 값들을 보여줄 수 있기 때문에 주로 원래 크기의 두배 정도가 적당하다고 한다. 일반적으로 우리는 프론트단을 구성하며 서버에 요청을 보내고 응답 값을 받게 되는데 그럴 경우 이미지의 사이즈를 줄이거나 변경하기 어려울 수 있다. 정적인 서버의 경우에는 변경이 가능하지만 그래서 이럴 때 주로 사용하는 경우는 CDN을 많이 사용한다. CDN(Contents Deilvery Network) 콘텐츠를 효율적..
2021.03.26 -
2편 크롬 검사 기능으로 웹의 성능평가 해보기(light house)
특정 리액트 웹의 성능을 한번 평가해보겠습니다. 만약 자기의 리액트 앱이 너무 느린데 이유를 모르겠어? 왜 느리지 하는 경우가 있을 것입니다. 그래서 크롬에서는 느린 이유를 간편하고 쉽게 찾을 수 있는 기능을 크롬 검사기인 light house을 사용해보고 원인을 분석해볼 수 있습니다. 위의 크롬 검사기를 가보면 Light house가 존재하는 것을 볼 수 있습니다. 검사해볼 기기를 Mobile, Desktop 중 뭘 할건지 선택해서 Generate Report를 눌러서 검사를 진행할 수 있습니다. 왼쪽과 같이 새로고침이 진행이 되면서 완전히 로드되면 해당 웹페이지의 점수를 볼 수 있습니다. 저 성능의 경우 100점 만점 중 75점 인거며 측정 항목을 통해서 이런 점수가 나온 것이 아래의 시간초를 보며 ..
2021.03.26