Difference between r1.18 and the current
@@ -169,3 +169,20 @@
}
}
* 12871 무한 문자열
}
* 12871 무한 문자열
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.next();
String s2 = sc.next();
if(s1.repeat(s2.length()).equals(s2.repeat(s1.length()))) {
System.out.println("1");
}
else {
System.out.println("0");
}
sc.close();
}
}
Describe 새싹교실/2022/Java보시던지/05.12 here
회고 ¶
난이도 ¶
익힌 내용들 - 패키지/import문
이미 알던내용들 - 접근제한자, static
이미 알던내용들 - 접근제한자, static
수업내용 ¶
static
초기에는 프라이빗으로쓰고 나중에 퍼블릭으로 바꿔주기
- 도입이유: (굳이 똑같은 내용인데?필요가 없는 공간들로 메모리낭비)
- 정의: 클래스에 고정된 멤버로 객체를 생성하지 않고 사용할 수 있는 멤버, 메소드
- 모든객체가 가지고 있어야하고 기능도 같아야한다면 공통된 내용은 스태틱으로
초기에는 프라이빗으로쓰고 나중에 퍼블릭으로 바꿔주기
새롭게 배운 내용 ¶
코드리뷰
1. boolean true 을 계산하면 if( A ==true)라고 하는 것보다 if(A)라고 하기
2. 안쓰고 버려질 내용은 변수명으로 주는것보다 바로 계산해버리기
1. 쓸클래스를 가져오기 import.util.Scanner;(원하는 것을 지정해서 가져오는 것을 추천)
2. 전체불러오고 싶다. import java.util.*; (비추 용량이 너무 큼)
1. boolean true 을 계산하면 if( A ==true)라고 하는 것보다 if(A)라고 하기
2. 안쓰고 버려질 내용은 변수명으로 주는것보다 바로 계산해버리기
숫자의 자릿수를 받기 위해서 string메소드의 스플릿을 쓰는 방법보다는 nString[] nString = Integer.toString(n).split(””);
charAt으로 받아와서 '0'으로 빼주기 nString.charAt(i) - ‘0’;
패키지charAt으로 받아와서 '0'으로 빼주기 nString.charAt(i) - ‘0’;
- 단순한 파일 시스템의 폴더 기능 뿐만 아니라 클래스의 일부분
- 클래스를 유일하게 만들어주는 식별자 기능
- 기능과 관련된 것을 대략적으로 나눠주는 것(기능별로 분리할때 사용)
- 상위패키지. 하위패키지.클래스
- 클래스만 따로 복사해서 다른 곳으로 이동하면 클래스 사용 불가
→ 사용하기 위해서는 패키지 자체를 이용해야한다.
- 소문자로 시작하는 것이 관례 (특수문자x숫자로 시작x)
1. 쓸클래스를 가져오기 import.util.Scanner;(원하는 것을 지정해서 가져오는 것을 추천)
2. 전체불러오고 싶다. import java.util.*; (비추 용량이 너무 큼)
- 폴더안의 것은 접근 불가(상위패키지를 import했다고 해서 하위패키지까지 import되지 않음)
- 동일 이름이 있을 경우, 풀네임으로 다뤄주기
느낀점/건의사항 ¶
실버문제 난이도가 좋은것 같아요!(너무 어렵지도 않고 쉽지도 않은 문제가 좋아용)
난이도 ¶
중
수업내용 ¶
- 클래스 멤버(인스턴스 → static X, 정적 → static O)
- 인스턴스 필드 - 객체마다 다른 값
- 정적 필드 - 객체에 상관없이 같은 값
- static 메소드는 클래스로 호출 X, 객체로 호출
- 패키지 - 클래스의 상위 개념(폴더 느낌)
- 상위패키지.하위패키지. … .클래스 (패키지는 소문자로 쓰는 것이 관례)
- import 상위패키지.하위패키지. … .클래스
- import 상위패키지.하위패키지. … .* (→패키지 안에 있는 모든 클래스 import)
- 접근 제한자 (public. protected, private, default)
새롭게 배운 내용 ¶
- ASCII code 활용법
- '7'(char) = 87(int, ASCII code)
- '0'(char) = 80(int, ASCII code)
- '7' - '0' = 7
- '7'(char) = 87(int, ASCII code)
- 변수 사용을 줄이는 게 좋다
- 수업 때 배운 내용들
느낀점/건의사항 ¶
- 과제 miss 1스택
과제 ¶
- 임지민
- Rectangle 클래스 작성
- Rectangle 클래스 작성
public class Rectangle {
/**사각형을 구성하는 점 정보 x,y
private int y;
private int width;
private int height;
/** x,y, width, height 값을 매개변수로 받아 필드를 초기화하는 생성자 */
Rectangle(int x, int y, int width, int height) {
/** 사각형 넓이 리턴하는 메소드 */
public int square() {
/** 사각형의 좌표와 넓이를 화면에 출력하는 메소드 */
public void show(){
}- 사각형을 구성하는 크기 정보 width, height */
private int y;
private int width;
private int height;
/** x,y, width, height 값을 매개변수로 받아 필드를 초기화하는 생성자 */
Rectangle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}this.y = y;
this.width = width;
this.height = height;
/** 사각형 넓이 리턴하는 메소드 */
public int square() {
return width * height;
}/** 사각형의 좌표와 넓이를 화면에 출력하는 메소드 */
public void show(){
System.out.println("(x,y) = ("+x+","+y+")");
System.out.println("넓이 = " + square());
}System.out.println("넓이 = " + square());
- 12871 무한 문자열
/** 무한문자열
- s와 t가 주어졌을 때, f(s)와 f(t)가 같은 문자열을 만드는지 아닌지 구하는 프로그램 */
public static void main(String[] args) {
/** 두 수의 최대공약수를 구하는 메소드 (유클리드 호제법) */
private static int gcd(int a, int b){
}Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String t = sc.nextLine();
sc.close();
if(t.length() > s.length()) { //두 문자열 길이를 비교하여 문자열의 길이가 더 긴걸 s, 짧은 걸 t로 바꿔준다.
int slen = s.length();
int tlen = t.length();
String s = sc.nextLine();
String t = sc.nextLine();
sc.close();
if(t.length() > s.length()) { //두 문자열 길이를 비교하여 문자열의 길이가 더 긴걸 s, 짧은 걸 t로 바꿔준다.
String tempString = s;
s = t;
t = tempString;
}s = t;
t = tempString;
int slen = s.length();
int tlen = t.length();
if(tlen != slen) { //두 문자열의 길이가 같다면 바로 비교하면 된다.
if(s.equals(t)) {
}//s와 t의 문자열 길이를 같게 만들어준다.
}final int GCD = gcd(slen, tlen);
s = s.repeat(tlen/GCD);
t = t.repeat(slen/GCD);
s = s.repeat(tlen/GCD);
t = t.repeat(slen/GCD);
if(s.equals(t)) {
System.out.println(1); // f(s)와 f(t)가 같다.
} else {System.out.println(0); // f(s)와 f(t)가 다르다.
} /** 두 수의 최대공약수를 구하는 메소드 (유클리드 호제법) */
private static int gcd(int a, int b){
/* 큰 수를 작은 수로 나눈다
}- 나누는 수를 나머지로 계속 나눈다
- 나머지가 0이 나오면, 나누는 수가 최대공약수 */
if(b == 0){
return a;
} else{return gcd(b, a%b);
}- 박창훈
- Rectangle 클래스
- Rectangle 클래스
private int x,y,width,height = 0;
Rectangle(int x, int y, int width, int height){
int square() {
void show() {
}Rectangle(int x, int y, int width, int height){
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}this.y = y;
this.width = width;
this.height = height;
int square() {
int area = width*height;
return area;
}return area;
void show() {
System.out.printf("(%d, %d)", x, y);
System.out.println();
System.out.println(square());
}System.out.println();
System.out.println(square());
- 12871 무한 문자열
public class Main {
public static void main(String[] args) {
}Scanner sc = new Scanner(System.in);
String s1 = sc.next();
String s2 = sc.next();
if(s1.repeat(s2.length()).equals(s2.repeat(s1.length()))) {
else {
sc.close();
}String s1 = sc.next();
String s2 = sc.next();
if(s1.repeat(s2.length()).equals(s2.repeat(s1.length()))) {
System.out.println("1");
}else {
System.out.println("0");
}sc.close();