오늘의 계획
1. Git 에 올리기(완료)
어제는 1차 플젝을 올렸으니 오늘은 2차플젝 올리기로
완전 처음 만드는 거라 init도 하고, 중간에 뜬 줄바꿈 오류도 어제와 같아서 아래거 입력함
git config --global core.autocrlf true
완전 민짜에 올리는거라 pull할 필요없이 add. 하고 coommit 하고 push를 했다
근데 메인화면에 쓰는 비디오가 너무 커서 안올라간다고 뜸...
일단 파일이 이미 Git에 추가되었으므로 추적을 중단해야 한대서 입력
git rm --cached bin/main/static/images/main/Comp\ 1.mp4
git rm --cached bin/main/static/images/main/video.mp4
그 다음 이후에도 비디오 파일이 git에 올라가지 않도록 gitignore 설정하기
$ # .gitignore
bin/main/static/images/main/Comp 1.mp4
bin/main/static/images/main/video.mp4
그리고 커밋후 다시 push하니 또 동영상 파일때매 오류가...
일단 static에서 동영상을 빼고 뷰에서도 video 태그를 뺀 뒤에 push 하기로 했다
는 안됨ㅋㅋㅋㅋㅋㅋ아오!!! 삭제는 했는데 히스토리에 남아잇어서 캐시를 지워도 이러나보다
권장대로 bfg repo cleaner로 삭제해보기로
사이트에서 받은 파일을 git과 같은 폴더에 넣고 명령어 입력
java -jar "C:/Spring/springSrc17/bsHive/bfg-1.14.0.jar" --delete-files "*.mp4" .
BFG 작업 후, Git 히스토리를 재작성하기
git reflog expire --expire=now --all && git gc --prune=now --aggressive
이러고 다시 push해보면 어 안돼 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
심지어 레포지토리까지 밀어도 자꾸 파일커용 오류떠서 뭐냐...했는데 아오 멍청아ㅋㅋㅋㅋㅋ
src폴더에서만 비디오를 지우고 bin폴더에서 지우지를 않았음 명령어에 버젓이 써있는데 왜 모르니 바보야
git 관련 파일들 다 지우고 bin에서 비디오 두개다 지우고 init부터 push까지 하니까 됐다...따흐흑 이걸로 오전 다 날렸네ㅠ
2. 프로그래머스 코테 풀어보기
코테는 5월에 학원에 입학 후 멋모르고 들어가서 끙끙대 보았지만 기초지식 없음+도무지 익숙해지지 않는 답 작성방법 때문에 일단 학원 수업부터 집중하기로 했다. 그 이후엔 야자를 하며 학원에서 배운걸 정리하고 익히고 등등 하느라 한번도 풀지 않았고... 오늘부터 드디어 다시 해보기로 했다
여전히 뭘 쓰라는거지...?하는 느낌이었다. 불친절하다고 느꼈지만 이게 회사에서 내는 코드테스트라고 생각하니 이해가 됐다. 테스트가 친절할리가..! 오늘은 어떻게 작성해야 답으로 인지하는지, 이 문제가 내게 뭘 작성하길 원하는건지 익히기 위해 기초중의 기초문제부터 시작했다. 오른쪽의 사이드바에 Day1 부터 하면서 사용법을 익히기로.
문제 1.
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
}
}
풀이과정
: 마구잡이로 적고 괄호안에도 넣어보고... 해보다가 구글링하고 나서야 허탈했음ㅋㅋㅋㅋㅋ그도 그럴것이 그냥 sysout이었다. 자동완성이 되지 않아서 한글자한글자 작성했는데 틀렸다고 해서 읭? 했는데 맨앞의 S를 대문자로 적어야 했다
정답
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
System.out.println(a);
}
}
문제 2.
정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.
제한사항: -100,000 ≤ a, b ≤ 100,000
입출력 예
- 입력 #1: 4 5
- 출력 #1: a = 4 b = 5
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
}
}
풀이과정
: 이것도 구글링하고나서야 왼쪽에 나오던 입력 출력 예가 뭘 원하는 건지 깨달았다.
4와 5 라는 숫자등을 입력하면 'a=입력한숫자 b=입력한 숫자'가 나오게 하라는 것.
그래서 오히려 당황함ㅋㅋㅋㅋㅋ엥 이게 진짜 문제야? 넘 쉬운건데 내가 착각한게 아닐까..?하고 해보니까 답이었음
정답
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
++ 다른사람의 풀이
나처럼 두 줄로 나누지 않고 /n을 이용하여 한줄로 작성한 사람이 있었다. 간결하고 한눈에 들어와 보기 좋았다.
System.out.println("a = "+a +"\n" +"b = "+b);
문제3.
문자열 str과 정수 n이 주어집니다. str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.
제한사항:
- 1 ≤ str의 길이 ≤ 10
- 1 ≤ n ≤ 5
입출력 예
- 입력 #1: string 5
- 출력 #1: stringstringstringstringstring
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int n = sc.nextInt();
}
}
풀이과정
: 음... 넣을때마다 값이 다르게 하기...어..? 이거 View짤때 썼던것 같은데 forEach문... 아 for문이구나! 하는 과정을 통해 작성
for(int i=0, i<n, i++) {
System.out.println(str);
}
라고 작성했는데 자꾸 틀렸다고 했다. 뭐지... 했는데 바보인가. 쉼표를 넣음ㅋㅋㅋㅋ 세미콜론이라고!!
정답
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int n = sc.nextInt();
for(int i = 0; i < n; i++) {
System.out.print(str);
}
}
}
++ 다른사람의 풀이
: 아래에 있는 한 줄로 끝난게 제일 많은 추천수를 받았다. repeat 함수..! 이 기회에 알아간다 저렇게 간단한 방법이 있다니
System.out.println(str.repeat(n));
문제4.
영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
제한사항
- 1 ≤ str의 길이 ≤ 20
- str은 알파벳으로 이루어진 문자열입니다
입출력 예
- 입력 #1: aBcDeFg
- 출력 #1: AbCdEfG
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
}
}
풀이과정
: 네? 대소문자 변환..?? 전에 수업할때 그런거 했나 찾아보니 html수업때 toUpperCase와 toLowerCase를 사용한 것을 발견했다
이것도 for문인가... 아냐, if문 같은데... 라고 생각하며 찾아보니 if문과 for문을 같이 사용한다는 힌트를 얻었다
String answer = "";
for(int i = 0; i ≤ 7; i++) {
if
}
여기까지 작성하다가 어 근데 일곱글자 아닐수도 있잖아..? 해서 변경
for(int i = 0; i ≤ a.length(); i++) {
if() {
} else {
}
}
System.out.println(answer);
이렇게 하고 넣은 글자를 한글자씩 떼어내는 함수를 찾아보니 char함수를 쓰고,
대문자 소문자등 문자를 판단하는 함수는 Character 함수를 사용하라길래 사용
Character 함수
- isUpperCase() : 문자가 대문자인지 판단해 true 또는 false 값을 리턴
- isLowerCase() : 문자가 소문자인지 판단해 true 또는 false 값을 리턴
- isDigit() : 문자가 숫자인지 판단해 true 또는 false 값을 리턴
- toUpperCase(): 문자를 대문자로 변환한 값을 리턴
- toLowerCase(): 문자를 소문자로 변환한 값을 리턴
하다보니 갑자기 +=가 헷갈리기 시작. 자바를 진짜 오랜만에 만났더니 이런것도 헷갈리네... 이 기회에 적어두기
↳ 더하기 할당 연산자( += )는 오른쪽 피연산자의 값을 변수에 더한 결과를 다시 변수에 할당합니다. 두 피연산자의 타입이 더하기 할당 연산자의 동작을 결정하며, 덧셈 또는 문자열 연결이 가능합니다.
ex) i += 1 은 i에 1을 더하는 대입연산자. i의 값을 1 증가시킨 다음, 그 결과를 i에 할당.
정답
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
for(int i = 0; i < a.length(); i++) {
char Aa = a.charAt(i);
if(Character.isUpperCase(Aa)) {
answer += Character.toLowerCase(Aa);
} else {
answer += Character.toUpperCase(Aa);
}
}
System.out.println(answer);
}
}
++ 다른사람의 풀이
: 함수를 쓰지 않는 방법들도 많고, 아스키코드를 쓰는 사람까지 있었음! 하지만 나는 구글링해서 찾아본 위의 함수사용방법이 제일 깔끔해보였다
문제5.
다음과 같이 출력하도록 코드를 작성해 주세요
출력예시:
!@#$%^&*(\'"<>?:;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
}
}
풀이과정
: 특수문자 출력이네..? 너무 꼼수같나 하면서도 아래처럼 입력했더니
System.out.println("!@#$%^&*(\'"<>?:;")
가운데에 있는 " 때문에 인식이 제대로 안됐다. 찾아보니 "를 그대로 출력하고 싶으면 앞에 역슬래쉬를 붙여야 한단다.
System.out.println("!@#$%^&*(\'\"<>?:;");
이랬더니 이번에는 !@#$%^&*('"<>?:;라고 출력됐다. 싱글쿼텐션 앞의 \가 없어진 상황... 기존에 있던 \가 '를 출력하게 만드는 역할을 하고 없어진 거였다
정답
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
System.out.println("!@#$%^&*(\\'\"<>?:;");
}
}
++ 다른사람의 풀이
System.out.print(
"!"+"@"+"#"+"$"+"%"+"^"+"&"+"*"+"("+"\\"+"\'"+"\""+"<"+">"+"?"+":"+";");
이거 광기 아니냐고ㅋㅋㅋㅋㅋ사실 이생각도 했는데 에이 비효율적이다...하고 안했는데 진짜 하는사람이 있다니ㅋㅋㅋㅋ
디지털 십자수 아니냐며ㅋㅋㅋㅋㅋ
오랜만에 자바하니까 진짜 기본적인거 하나도 기억안나고요... 스터디할때 Spring으로 화면 짜는걸 공부한다면 코테공부할때는 자바공부를 하게 되는 셈이니 코테도 시간을 좀더 많이 할애해야겠다
3. 이력서 돌리기
'일지 > 취준일기' 카테고리의 다른 글
2024_11_28 취준일기 7일차 (0) | 2024.11.28 |
---|---|
2024_11_27 취준일기 6일차 (1) | 2024.11.27 |
2024_11_25 취준일기 4일차 (0) | 2024.11.25 |
2024_11_22 취준일기 3일차 (1) | 2024.11.22 |
2024_11_20 취준일기 1일차 (0) | 2024.11.20 |