본문 바로가기

728x90
반응형

~2023

(160)
[Git] rebase로 커밋 기록 삭제하기 프로젝트를 진행하다가 이상한 걸 remote에 푸쉬해버리는 바람에 커밋 기록 삭제하는 방법을 찾아 다녔다 reset과 revert로도 할 수 있다는데,,, reset은 잘못하다가 커밋을 전부 날려 버릴 것 같아 사용하지 않았고 revert는 과정이 어려웠다. 그래서 위험하지만 성능 확실한 rebase로 커밋 기록을 삭제했다. 내가 한 방식은 rebase로 커밋 목록 보고 삭제하고 싶은 해당 커밋을 drop해준 다음에 remote에 푸쉬해주면 쉽게 커밋을 없애버릴 수 있었다. $ git rebase -i HEAD~? ?는 최근 커밋부터 ?에 넣을 숫자만큼 커밋 기록을 보여준다. 그래서 삭제할 커밋 메세지 or 커밋 해쉬 코드(git log를 통해 볼 수 있음)를 찾아 pick -> drop으로 변경해주고 ..
[JAVA] 백준 2751번 문제, 수 정렬하기 2 www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제에서 중요하게 봐야 할 키워드는 '주어진 입력의 범위는 -1,000,000 ~ 1,000,000인 정수', '수는 중복되지 않는다'입니다. 중복 없이 입력받기 때문에 해당하는 수가 들어왔는지, 아닌지만 판단하면 됩니다. 따라서 크기 200만 인 Boolean 타입의 배열 arr[]를 만들어 값이 들어왔을 경우 True값을 넣어줍니다. 그래서 위의 작업을 첫 번째 for문에서 수행합니다. 두 번째..
[Git] 매우 기초적인 Git 명령어 모음 Local Repository 현재 디렉토리에 로컬 저장소 만들기 >> $ git init 작업 트리의 파일 상태 확인 >> $ git status config 설정 유저 정보 설정>> $ git config --global user.name ["유저명"] $ git config --global user.email [이메일] commit 편집 에디터 설정>> $ git config --global core.editor [프로그램명] $ git config --global core.editor vim $ git config --global core.editor notepad-plus-plus 정보 보기 $ git config --list Staging Area 파일을 등록하기 >> $ git add 파일명..
[Git] Git Push 또는 Pull이 안되는 경우 >> (fatal: refusing to merge unrelated histories) 로컬 저장소에서 리모트 저장소에 push 할 경우 아래와 같은 메세지가 뜨는 경우가 있습니다. hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 이는 로컬 저장소와 리모트 저장소가 같지 않기 때문에 병합을 해주어야 합니다. 병합을 하기 위해서는 $ git pull remote 별명 브런치명 을 ..
[Python] 삼각 달팽이 - 월간 코드 챌린지 시즌1 programmers.co.kr/learn/courses/30/lessons/68645 n=5 그림을 보면 [1, 2, 3, 4, 5], [6, 7, 8, 9], [10, 11, 12], [13, 14], [15] 순으로 배열에 값이 들어가는 것을 확인할 수 있습니다. 즉 5번, n번만큼 작동하면 모든 값이 들어갑니다. 회차마다 들어가는 값은 n - 회차입니다. (회차는 배열이기 때문에 0부터 시작) 하나의 둘레는 3회가 필요하기 때문에 회차 % 3을 통해 방향을 구합니다. (우 -> 하 -> 상이라서 3회) 회차 % 3 == 0이면, 아래로 향하고 회차 % 3 == 1이면, 오른쪽으로 향하고 둘 다 아니면 위로 올라갑니다. 이 논리를 통해 2차원 배열를 꽉 채운 후에 sum(arr, [])를 통해 1차..
[ANDROID] CheckBox >> onClickListener() 이벤트 리스너 설정 간단하게 체크박스 안 요소를 클릭시 Toast가 발생하도록 하는 클릭 이벤트 리스너 설정하는 방법에 대해 실습해봅시다. 두 가지 방법으로 수행했는데 (1) 익명 클래스로 처리, (2) 클래스 객체를 만들어 매개변수로 전달했습니다. 저는 (2) 방법을 통해 실행을 진행했습니다. *(1) 방법은 코드 참고 기초적인 다른 문법들의 설명을 생략하고 이벤트 리스너에 대해 이야기해보도록 하겠습니다. View.OnClickListener 클래스의 객체(CheckBoxClickListener(이하 mCBCL, 이하 클래스의 객체)) 하나를 준비해야 합니다. 그리고 onClick() 메소드를 커스텀하면서 오버라이딩하면 됩니다. 여기서 가장 중요한 부분, checked 변수입니다. checked 변수는 변수명에서 보시듯이..
[ANDROID] java 파일에서 터치 이벤트 발생시켜 현재 터치 위치 표시하기 MyView.java(이하 커스텀 뷰)를 만들어 액티비티 화면으로 설정해 실습을 해봤습니다. 커스텀 뷰에서 터치 이벤트가 발생했을 때 (x, y)를 읽어와 안내하는 문자열을 출력했습니다. 커스텀 뷰 방법으로 했을 때 두 가지 주의해야 할 점이 있습니다. xml에서 class 속성을 필수로 추가해줘야 합니다. ex) class="com.example.${PROJECT_PATH}.${CLASS_NAME}" 위 속성을 추가해준 후에 커스텀 뷰의 모든 생성자에서 부모 생성자를 호출해주면 됩니다. ex) super(인자1, 인자2, ..) 여기까지 따라오셨으면 필수 설정은 끝났으니 커스텀 뷰에서 멤버로 Paint 객체를 만들어 TextSize를 정해주는 등 꾸미기만 하면 됩니다. onDraw() 메소드는 단순히 ..
[Python] 문자열 압축 - 2020 KAKAO BLIND RECRUITMENT 2020 KAKAO BLIND RECRUITMENT > 문자열 압축 programmers.co.kr/learn/courses/30/lessons/60057 각각의 패턴 크기(1, 2, 3...)로 압축된 문자열의 길이 중 가장 많이 압축된 문자열(이하 최소값)의 길이를 return하는 문제이다. 0번째 인덱스부터 패턴을 비교해야 하며 중복된 횟수가 1인 경우는 무시하고 2부터 표시한다. 모든 패턴을 검사할 때까지 큰 반복문을 돌려주고 그 안에 반복문에서 패턴과 문자열 매칭을 통해 {중복된 횟수+패턴}으로 압축해준다. 작동 시간을 단축시키고 싶었으나 매칭 과정에서는 힘들 것 같아 최소값을 구하는 과정을 줄이는데 초점을 맞췄다. 패턴이 일치하지 않아 word에 pattern을 추가하는 과정 다음으로 최소값과..

728x90
반응형