KDLiam

[Programmers ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํŠธ๋ ˆ์ด๋‹ : Java] ๊ฐ„๋‹จํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋ณธ๋ฌธ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Programmers ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํŠธ๋ ˆ์ด๋‹ : Java] ๊ฐ„๋‹จํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ

KDLiam 2025. 10. 15. 10:51

๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 181917 — ๊ฐ„๋‹จํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ (JAVA ํ’€์ด)

์˜ค๋Š˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๋ ˆ๋ฒจ 0 ๋ฌธ์ œ, “๊ฐ„๋‹จํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ” ๋ฌธ์ œ๋ฅผ
Java๋กœ ํ’€์ดํ•œ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค.


๐Ÿ“˜ ๋ฌธ์ œ ์„ค๋ช…

์ฃผ์–ด์ง„ 4๊ฐœ์˜ ๋ถˆ๋ฆฌ์–ธ ๋ณ€์ˆ˜ x1, x2, x3, x4๊ฐ€ ์žˆ์„ ๋•Œ,
๋‹ค์Œ ๋…ผ๋ฆฌ์‹์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

(x1 ∨ x2) ∧ (x3 ∨ x4)

์ฆ‰,

  • ์•ž ๊ทธ๋ฃน (x1 || x2) ์ค‘ ํ•˜๋‚˜๋ผ๋„ true์ด๊ณ 
  • ๋’ค ๊ทธ๋ฃน (x3 || x4) ์ค‘ ํ•˜๋‚˜๋ผ๋„ true์ด๋ฉด
    ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ€ true๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

 
class Solution {
    private boolean intersection(boolean a, boolean b) {
        if (a == true && b == true) {
            return true;
        }
        return false;
    }

    private boolean union(boolean a, boolean b) {
        if (a == false && b == false) {
            return false;
        }
        return true;
    }

    public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) {
        boolean answer = (intersection(union(x1, x2), union(x3, x4)));
        return answer;
    }
}

๐Ÿง  ์ฝ”๋“œ ํ•ด์„ค

1๏ธโƒฃ intersection (๊ต์ง‘ํ•ฉ)
→ ๋‘ ๊ฐ’์ด ๋ชจ๋‘ true์ผ ๋•Œ๋งŒ true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ union (ํ•ฉ์ง‘ํ•ฉ)
→ ๋‘ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ผ๋„ true์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ solution ๋ฉ”์„œ๋“œ
→ (x1 || x2)์™€ (x3 || x4)๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋’ค,
์ด ๋‘˜์„ AND(&&) ์กฐ๊ฑด์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰,

(x1 || x2) && (x3 || x4)
๋ผ๋Š” ๋…ผ๋ฆฌ์‹๊ณผ ์™„์ „ํžˆ ๋™์ผํ•ฉ๋‹ˆ๋‹ค โœ…


๐Ÿ’ก ๊ฐœ์„  ํฌ์ธํŠธ ์ œ์•ˆ

์ง€๊ธˆ ์ฝ”๋“œ๋„ ์ •๋‹ต์ด์ง€๋งŒ,
์ž๋ฐ”์—์„œ๋Š” ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์„ ๋‹ค๋ฃฐ ๋•Œ if (a == true) ๊ฐ™์€ ๋น„๊ต์‹์€ ๋ณดํ†ต ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฏธ a ์ž์ฒด๊ฐ€ true/false์ด๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

โœ… ๊ฐœ์„  ๋ฒ„์ „ 1 — ๋” ์ž๋ฐ”๋‹ค์šด ์Šคํƒ€์ผ

 
class Solution {
    private boolean intersection(boolean a, boolean b) {
        return a && b;
    }

    private boolean union(boolean a, boolean b) {
        return a || b;
    }

    public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) {
        return intersection(union(x1, x2), union(x3, x4));
    }
}

→ ๊ธฐ๋Šฅ์€ ์™„์ „ํžˆ ๊ฐ™์ง€๋งŒ, ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.


โœ… ๊ฐœ์„  ๋ฒ„์ „ 2 — ํ•œ ์ค„๋กœ ๋๋‚ด๊ธฐ (์‹ค๋ฌดํ˜•)

 
class Solution {
    public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) {
        return (x1 || x2) && (x3 || x4);
    }
}
 

→ ์‹ค๋ฌด๋‚˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ๋Š” ์ด๋Ÿฐ ํ˜•ํƒœ๊ฐ€ ๊ฐ€์žฅ ํšจ์œจ์ ์ด์—์š”.
๊ฐ€๋…์„ฑ๋„ ์ข‹๊ณ , ๋ถˆํ•„์š”ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋„ ์—†์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ ์ •๋ฆฌ

๋ฒ„์ „์žฅ์ ๋‹จ์ 
๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ ๋…ผ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ•ด์„œ ํ•™์Šต์— ์ข‹์Œ ์ฝ”๋“œ๊ฐ€ ๋‹ค์†Œ ์žฅํ™ฉํ•จ
๊ฐœ์„  ๋ฒ„์ „ 1 ๊ฐ„๊ฒฐํ•˜๊ณ  ์ž๋ฐ”๋‹ค์šด ํ‘œํ˜„ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์ƒ๋žต๋œ ๋А๋‚Œ
๊ฐœ์„  ๋ฒ„์ „ 2 ์ตœ๋‹จ ์ฝ”๋“œ, ์‹ค๋ฌดํ˜• ํ•จ์ˆ˜ ๊ตฌ์กฐ๊ฐ€ ์‚ฌ๋ผ์ ธ ํ•™์Šต์šฉ์œผ๋ก  ๋ถ€์ ํ•ฉ

โœจ ๊ฒฐ๋ก 

  • ์ง€๊ธˆ ์ฝ”๋“œ๋„ ์™„์ „ํžˆ ์ •๋‹ต์ด๋ฉฐ, ๋…ผ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๋ช…ํ™•ํ•ด์„œ ํ•™์Šต์šฉ์œผ๋กœ ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ์•ž์œผ๋กœ๋Š” return a && b;, return a || b; ๊ฐ™์€ ํ‘œํ˜„์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฑธ ์ถ”์ฒœ๋“œ๋ ค์š”.

๐Ÿ’ฌ ์งง๊ฒŒ ์š”์•ฝํ•˜์ž๋ฉด:
“(x1 || x2) && (x3 || x4)”
์ด๊ฒŒ ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค!