Programming

    'ssh' is not recognized as an internal or external command, operable program or batch file. 해결법

    putty로만 작업했었어서 정말 오랜만에 만나보는 문장이었다. Windows cmd 에서 'ssh' is not recognized as an internal or external command, operable program or batch file.와 같은 문구가 나온다면 2가지 상황을 의심할 수 있다. 1. 정말 그 명령어를 실행하기 위한 file이 존재하지 않거나 2. 환경변수를 설정하지 않았거나 우선 1번의 경우를 점검해보자. 만약 위 사진과 같이 설치되어 있지 않다면 위의 '기능 추가'을 클릭하여 설치해주면 된다. 그러나 사진처럼 설치가 되어있음을 확인했다면 2번의 경우를 의심해볼 수 있다. OpenSSH의 경로는 대개 C:\Windows\System32\OpenSSH이다. 실제로 ssh가 존..

    [C++] 1874번 : 스택 수열

    https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 사실 1시간 동안 이 문제를 풀지 못해 결국 답을 보았습니다. 추가로, 알고리즘을 아직 찍어먹는 수준으로 밖에 하지 않았지만 '알고리즘 문제 풀이 마인드'가 궁금하여 열심히 찾아본 결과 모두 중략하여 말하자면 '1시간이나 소비하지말고 30-45분 내에 떠오르지 않으면 넘기자'입니다. 1) 문제 이해 문제 이해를..

    [C++] 10773번 : 제로

    https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 스택을 사용하여 정말 쉽게 풀 수 있는 문제입니다. 문제의 '가장 최근에 재민이가 쓴 수를 지우게 시킨다.' 문장에서 이를 가장 효율적으로 수행할 수 있는 자료구조로 스택을 생각할 수 있었다면 구현은 어렵지 않습니다. 내 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.ti..

    [C++] 1406번 : 에디터

    https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 풀이 vector 또는 단순 배열을 이용하여 풀어볼 수 있겠구나 라고 생각할 수 있다. 그러나 수상하게도 문제에서 주어진 시간 제한이 0.3초이다. 즉 각 명령어를 수행할 때 O(n)이 아닌 O(1)인 코드를 기술해야한다.(즉 각 명령어를 수행할 때마다 문자열 전체를 봐야하는 것은 안된다! -> vector과 배열을 사용할 시 O(mn)이 되므로 불가하다.) 그에 딱 맞는 자료구조로 Linked L..

    [C++] 1919번 : 애너그램 만들기

    https://www.acmicpc.net/problem/1919 1919번: 애너그램 만들기 두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs www.acmicpc.net 풀이 11328번 Strfry 문제와 상당히 유사한 문제이다. 이 때 배열을 굳이 2개나 사용하지 않아도 1개로 해결할 수 있는 모범 풀이가 존재해 이번 문제도 한 가지 배열로 풀어봐야겠다고 다짐했으나.. 시간을 투자하여도 내 풀이에는 반례가 존재했다. 모범 답안을 보면 1개의 배열로 풀 수는 있으나 2차원 배열이기 때문에 1차원 배열 2개를 사용하는 것과 같다. 내 코드..

    [C++] 백준 11328번 : Strfry

    https://www.acmicpc.net/problem/11328 11328번: Strfry C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래 www.acmicpc.net 풀이 소문자 알파벳의 개수는 26개임을 이용하여 크기가 26인 배열을 만들고 첫 번째 문자열을 구성하는 문자들의 횟수를 배열에 저장할 수 있도록하고, 마찬가지로 두 번째 문자열을 구성하는 문자들의 횟수를 배열에 저장할 수 있도록 하여 비교하는 방식을 사용하였습니다. 풀면서도 더 효율적인 방법이 있을 것 같다는 생각을 하였는데 역시 존재했습니다. 내 코드 #include usin..

    [C++] 13300번 : 방 배정

    https://www.acmicpc.net/problem/13300 13300번: 방 배정 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어 www.acmicpc.net 풀이 무언가 요구하는 것이 많아보이지만 차근차근 읽으면 쉽게 풀 수 있는 문제이다. 문제에서 대놓고 table 구조를 보여주어 2차원 배열을 쓸 것을 쉽게 생각해낼 수 있다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int N, K, S, Y,cnt = 0; vec..

    [C++] 백준 3273번 : 두 수의 합

    https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 풀이 문제를 보고 2중 for문으로 풀면 되는 것 아닌가? 하셨을 수도 있겠어요. 하지만, 시간 제한이 1초이기 때문에 O(N^2) 풀이로는 시간초과가 발생할 것입니다. (주어진 N의 최대값은 10만이고 1초는 대략 3-5억번의 연산을 수행하기 때문에 당연히 초과) 시간복잡도를 줄이기 위해서는 공간복잡도를 희생해보는 건 어떨지 고민해봅시다. ..

    [C++] 1475번 : 방 번호

    https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. -> 대놓고 배열을 사용하여 풀라고 한다. 문제에서 신경써줘야 하는 부분은 '6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용' 이다. 일단 단순하게 방번호가 9999인 경우 2set가 필요함을 알 수 있다. 그렇다면 99999의 경우는? 당연히 3set일 것이다. 이에 따라 홀수/짝수 경우를 나눠 홀수 -> 2로 나누고 + 1 , 짝수 -> 2로 나누기 연산을 수행해서 최댓값을 구하고자 하였으나, 66699 라는 반례가 ..

    <식물들의 사생활> 리뷰/서평

    별점 ★4.8/5 서평을 적어보기에 앞서 책의 표지만 봤을 때는 공포 소설 같지만 전혀 그렇지 않다. 이 책은 사랑이라는 이름의 욕망이 아닌 욕망이라는 이름의 사랑을 주제로 식물에 비유하여 전개하는 소설이다. 중반부까지 이 책을 읽어내기까지의 든 감정은 '불쾌감'이다. 동생을 화자로하여 자신과 형 그리고 어머니 아버지를 비추고 있는데, 이것은 가족의 형태를 띄지 않았다. 마치 남이었다. 그럼에도 놓지않고 읽을 수 있었던 이유는 작가의 필력 때문이 아닐까 싶다. 문장의 호흡이 꽤 긺에도 불구하고 대체로 잘 읽히는 편이며 이 비극의 끝은 어딜까 궁금하게 하는 매력이 있다. 그러나 중반부부터는 누구든 정말 재미있게 읽을거라 장담한다. 뻔한 클리셰같은 전개라고 할 수 있지만(나조차도 그런 생각을 잠시 했었다) ..