https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 출력 요구사항을 잘 보면 원래 갈 수 없는 땅인 위치는 0으로 출력하고, 원래 갈 수 있는 땅인 부분 중에서 도달할 수 없는 위치는 -1을 출력한다. 라고 나와있다. 즉, 목표지점과 0인 부분은 0으로 출력하고, 1이었으나 도달하지 못한 경우에만 -1로 출력하면 된다. 처음에 0인 부분도 -1로 출력해서 틀렸다. 문제 해결 방법은 아래와 같다. 최단거리..
CodeDeploy Agent를 설치하는 과정에서 발생한 Ruby 권한 문제이다. cd /tmpgit clone https://github.com/aws/aws-codedeploy-agent.gitsudo mv aws-codedeploy-agent /opt/codedeploy-agentcd /optgem install bundler -v 1.3.5위 명령어를 차례대로 입력하다가 마지막 문장을 입력했을 때 에러가 발생했다. 원인은 Ruby 버전 문제였다. 디폴트로 설정돼 있는 시스템 ruby는 gem 설치 권한이 없기 때문에 새로운 버전의 ruby를 설치해 주어야 한다. 1. rbenv 설치brew로 설치할 것이기 때문에 brew를 업데이트 해주고 설치하면 된다.brew updatebrew install..
로컬에서 프로젝트를 빌드했는데 해당 에러가 떴다. 포트 문제인 것을 바로 알 수 있었다. 우리 프로젝트는 5000번 포트로 지정해 뒀기 때문에 5000번 포트가 이미 사용 중이니 삭제하라는 문장이다. 문제는 여기서부터였다.. 5000번 포트를 찾아내고 삭제해 주는데도 계속 자동으로 생성됐다.. 다행히 이 문제에 대한 원인도 바로 알 수 있었다. 맥북 포맷할 겸 몬터레이 OS에서 소노마 OS로 업그레이드했는데 그 과정에서 AirPlay 모드가 자동으로 켜진 것이다.. 해결 방법은 설정 > AirPlay 수신 모드 > AirPlay 수신 모드 해제 이렇게 설정해 주면 5000번 포트를 살릴 수 있다. 👍🏻👍🏻👍🏻
예전에 기술블로그에 글을 올릴 때마다 깃허브에 기록이 되면 좋겠어서 Github Action 찍먹을 한 적이 있다. 이번에는 졸업작품 개발에 들어가기 전 CI/CD 파이프라인을 구축하기 위해 건드렸는데 정말... 차원이 달랐다.. 일단 PTSD를 갖고 있는 MySQL 권한 문제부터 해서 contextLoads() FAILED 문제까지 겹치니 정신이 없었다.. 이렇게 오래 걸릴 줄 몰랐는데 데 자꾸 새로운 에러가 나오니 더 불안했던 것 같다.. 결론부터 말하면 CI/CD 구축은 했다. 하지만 아직 AWS 환경은 연결하지 못했다.. 그래서 이번 글에서는 Github Action CI/CD를 구축하면서 마주칠 수 있는 삽질들을 정리하고자 한다. 다른 분들께 꼭 도움이 되길... 처음에 작성한 yml 코드이다...
CS 스터디에 참여하게 되었는데 스터디 팀장님이 깃허브 레포에 문제를 올려주신다. 이번 글에서는 2주 차에 업로드된 자바 문제를 풀 받기 위해 입력한 명령어들을 정리하고자 한다. 수정된 원본 Repository를 업데이트하기 전 모습이다. 1. Repository를 Clone 받은 디렉터리로 이동 2. Remote Repository 확인 $ git remote -v originhttps://github.com/yo0oni/interview.git (fetch) originhttps://github.com/yo0oni/interview.git (push) 3. Remote Repository에 원본 Repository 추가 $ git remote add upstream https://github.com..
처음에 두 어노테이션을 구글에 검색했는데, 대부분 식별자와 공유에 대한 얘기만 있었다. 먼저 테이블 클래스 내 필드는 연결이 되어야 하는데 값 타입 필드는 공유가 되지 않는다고 한다. 그리고 식별자가 따로 없어 추적할 수 없다고 한다. 음... 뭔가 엔티티 타입과 값 타입의 차이점일 뿐, 임베디드 타입과 두 어노테이션에 대한 궁금증은 해소되지 않았다. 나는 좀 더 직관적인 필요성을 알고 싶었다. 그렇게 해서 찾은 것이 "객체지향"이었다. 데이터베이스 테이블 역시 객체지향으로 귀결하는 것이었다. 회원 엔티티는 식별자, 이름, 도시, 번지, 우편번호를 가진다. 코드를 보자면 두 가지 생각이 들어야 한다. 1. 회원 테이블이 식별자를 가지고 있다. 엔티티 타입이네? 2. 관심사가 겹치는 특정 필드가 너무 많다..
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 재민이와 재현이의 역할을 잘 파악하면 된다. 재민 : 장부 관리 재현 : 잘못된 수를 외침 → 이로 인해 재민이는 가장 최근에 쓴 수를 지움 문제 해결 방법 재현이가 0을 외치면 스택 마지막 요소를 삭제한다. 0을 외치지 않으면 제대로 부른 것이니, 해당 숫자를 스택에 추가한다. 소스 코드 import sys input = sys.stdin.readline N =..
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 1. A에 2를 곱하기 2. A의 가장 오른쪽에 1을 추가하기 위 두 가지 방식만 써서 A를 B로 만드는 문제이다. 하지만 나는 B를 A로 만들어서 연산의 최솟값을 구했다. B에서 A를 만들어야겠다고 생각한 가장 큰 이유는, A의 가장 오른쪽에 1을 추가하는 시기를 결정하기 어렵기 때문이다. B를 2로 나누면서 가다 보면 일의 자리 수가 1인 경우가 발생하고, 이때 1을 삭제해 주면 같은 로직으로 구현된다. 이 방법을 통해 B에서 A를 찾아나갔고, 해당 연산의 최솟값을 구했다. 소스 코드 import sys input =..